2011-04-11 305 views
4

当前版本的Log4net是否有办法创建一个RollingFileAppender,其中滚动文件总是保留给定的扩展名(.log,在我的情况下)?Log4Net复合RollingFileAppender与静态文件扩展名

格式的实施例I想:

MyLog.log
MyLog.2011-04-10.1.log
MyLog.2011-04-10.2.log
MyLog.2011-04 -10.3.log

我发现this post它说,有一个“PreserveLogFileNameExtension”属性,但它不包括在官方的二进制文件。这仍然是这样吗?

如果是这样:任何人都可以解释为什么这个属性仍然不是Log4Net的官方部分?我对使用自定义构建有点怀疑,但也许我不应该?

我也很好奇知道为什么默认功能不保留文件扩展名。我不明白为什么它会让所有日志文件具有不同的扩展名。

编辑:得到它的工作通过这样做:
1:下载和构建log4net的源代码
2:应用这些补丁:https://issues.apache.org/jira/browse/LOG4NET-64
3:在配置设置PreserveLogFileNameExtension为 “true”。

回答

2

情况没有改变。没有更新版本的log4net。当我(如果)会有一个新版本时,我很不清楚...

我认为你不需要担心使用自定义构建。测试你的软件,如果它起作用就足够了。

编辑:有一个新版本应该包括LOG4NET-64。当然,你仍然可以坚持你的定制版本。

+0

谢谢快速回复!我做了一个自定义构建,并将“PreserveLogFileNameExtension”属性设置为true。这似乎适用于大小滚动,但不是日期。现在它会根据需要滚动到“MyLog.1.log”,但当它在日期推出时,我会看到“MyLog.1.log04-11-2001”,这与我以前的版本非常相似。如何获得“MyLog.1.04-11-2011.log”的更多提示?我尝试过使用的方法,但是与PreserveLogFileNameExtension结合使用它并不起作用;由于某种原因,它只保留最后的日志文件,当它推出日期.. – 2011-04-11 12:55:05

+0

也许该功能没有正确实施...如果我是你,我会尝试修复它自己在源代码(如果我真的需要它) – 2011-04-11 13:29:51

+0

当我从这个页面应用补丁时,它按照我的需要工作! https://issues.apache.org/jira/browse/LOG4NET-64 – 2011-04-12 07:51:00

4

你试过这些参数吗?

<file value="log-files\MyLog" /> 
<appendToFile value="true" /> 
<rollingStyle value="Date" /> 
<datePattern value="yyyy-MM-dd'.log'" /> 
<param name="StaticLogFileName" value="false" /> 

它会保留扩展,但会给你这样每个文件名的日期。

 
MyLog2011-05-16.log 
MyLog2011-05-17.log 
MyLog2011-05-18.log 
MyLog2011-05-19.log 

也许有可能将它与尺寸滚动相结合?

0

我使用这个配置:

<file value="" /> 
<appendToFile value="true" /> 
<rollingStyle value="Date" /> 
<datePattern value="yyyyMMdd'.log'" /> 
<staticLogFileName value="false" /> 

为了得到这样的文件名:

  • 20111101.log
  • 20111102.log
  • 20111103.log