rotation log4net不会重写相同的日志文件

时间:2013-02-06 09:36:56

标签: c# asp.net log4net

我想将旋转日志限制为500 MB。

因此,在500MB之后,将覆盖相同的日志文件。

现在配置在500MB后打开一个新的日志文件。

我该如何解决这个问题?

  <log4net>
    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
      <file value="D:\Products\Logs\MamClientServices\MamClientServiceLog.txt"/>
      <appendToFile value="true"/>
      <StaticLogFileAppName value="false"/>
      <rollingStyle value="Size"/>
      <maxSizeRollBackups value="5"/>
      <maximumFileSize value="500MB"/>
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date{dd MMM yyyy HH:mm:ss,fff}||[%thread]||%-5level||%logger||%message%newline"/>
      </layout>
      <lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
    </appender>
    <root>
      <level value="WARN"/>
      <appender-ref ref="RollingLogFileAppender"/>
    </root>
    <logger name="infrastructure" additivity="false">
      <level value="INFO"/>
      <appender-ref ref="RollingLogFileAppender"/>
    </logger>
    <logger name="system" additivity="false">
      <level value="INFO"/>
      <appender-ref ref="RollingLogFileAppender"/>
    </logger>
  </log4net>

2 个答案:

答案 0 :(得分:3)

除非我遗漏了明显的东西,否则告诉log4net要维护5个文件:

<maxSizeRollBackups value="5"/>

请参阅documentation

答案 1 :(得分:0)

要让它打开相同的日志文件,您可能需要这样做:

<StaticLogFileAppName value="true"/>

现在,您将其设置为false。根据{{​​3}},这就是指定是否应该创建新文件的内容。