4

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

我想要的格式示例:

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

我发现这篇文章说有一个“PreserveLogFileNameExtension”属性,但它不包含在官方二进制文件中。现在还是这样吗?

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

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

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

4

3 回答 3

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

也许可以将其与尺寸滚动结合起来?

于 2011-05-19T06:48:46.577 回答
2

情况没有改变。log4net 没有更新版本。我还不清楚什么时候(如果)会有新版本......

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

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

于 2011-04-11T11:15:35.960 回答
0

我正在使用这个配置:

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

获取如下文件名:

  • 20111101.log
  • 20111102.log
  • 20111103.log
于 2011-11-02T23:15:19.767 回答