C#-log4net-仅创建一个日志文件

我正在使用log4net,并且在运行应用程序时,会创建几个日志文件.
每当时间格式更改时,log4net似乎都在创建一个新的日志文件,这意味着每隔一分钟我都会得到一个新的日志文件.

我可能误解了所使用的xml语法,但是我不确定其错误之处(也许是RollingFileAppender?).

这是xml文件:

<log4net>

  <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date %-5level [%thread] %logger:%line - %message%newline"/>
    </layout>
  </appender>

  <appender name="FileAppender" type="log4net.Appender.RollingFileAppender">
    <appendToFile value="true"/>
    <rollingStyle value="Date"/>
    <staticLogFileName value="false" />
    <datePattern value="yyyyMMdd_hhmm'.log'"/>
    <file value="Boghe"/>
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date %-5level [%thread] %logger:%line - %message%newline"/>
    </layout>
  </appender>

  <root>
    <level value="ALL"/>
    <appender-ref ref="ConsoleAppender"/>
    <appender-ref ref="FileAppender"/>
  </root>

</log4net>

谢谢

解决方法:

您需要将日期模式更改为类似

<datePattern value="yyyyMMdd" />

这将每天滚动一次日志文件.

例:
使用此配置

<file value="Foo" />
<StaticLogFileName value="false">
<datePattern value="yyyyMMdd_hhmm"/>

您告诉文件附加器每分钟创建一个新的日志文件(如果您至少每分钟一次向日志中写入内容).

假设您在2011年9月21日17:00:00启动了应用程序.您每秒输出日志记录信息.
这意味着在最初的60秒(直到17:00:59)中,所有输出都将存储到名为Foo20110921_1700的文件中.
在17:01:00发生下一个输出,文件将被“翻转”,这意味着将创建一个新文件Foo20110921_1701.
在接下来的60秒钟内,所有输出将进入该新文件.同样会在17:02:00、17:03:00等发生.

有关更多信息,请参见RollingFileAppender documentation

上一篇:单元测试中配置log4net以登录到控制台并显示正确的日期和时间


下一篇:CodeGo.net>用FileSystemWatcher观看log4net日志文件