具有静态文件扩展名的Log4Net组合RollingFileAppender

时间:2011-04-11 10:54:44

标签: log4net rollingfileappender

当前版本的Log4net是否有办法创建具有复合滚动样式的RollingFileAppender,其中滚动文件始终保留给定的扩展名(在我的情况下为.log)?

我想要的格式示例:

  

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”。

3 个答案:

答案 0 :(得分: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 

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

答案 1 :(得分:2)

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

我认为您不必担心使用自定义构建。测试你的软件,如果它有效,那就足够了。

编辑:有一个新版本应该包含LOG4NET-64。当然,您仍然可以坚持自定义构建。

答案 2 :(得分:0)

我正在使用此配置:

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

获取文件名,如:

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