log4net在第二天启动时覆盖我的日志文件

4
我在这种情况下使用log4net遇到了问题:
  1. 今天是2014年11月30日
  2. 当前日志文件名为log.txt
  3. 日志文件一整天都在增加
  4. 第二天(2014年12月1日),日志文件存在于log.txt20141130中
  5. 但是,当我打开日志文件时,所有日期为11月30日的条目都丢失了,日志仅包含几个日期为12月1日午夜后的条目。

现在我的日志每天都被覆盖掉,因为它们被午夜后的前几个日志所取代。

是否有任何方法可以防止这种情况发生?

谢谢

以下是我的log4net配置文件:
   <appender name="Test" type="log4net.Appender.RollingFileAppender">
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
    <file value= "C:\Test\Log\log.txt" />
    <appendToFile value="true" />
    <rollingStyle value="Composite" />
    <datePattern value="yyyyMMdd" />
    <maxSizeRollBackups value="10" />
    <maximumFileSize value="1MB" />
    <layout type="log4net.Layout.PatternLayout">
     <conversionPattern value="%date|%level|%thread|%property{function}|%property{flowid}|%message%newline" />
    </layout>
  </appender>
2个回答

0
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
  <file value=".\\Log\\log.txt" />
  <appendToFile value="true" />
  <maximumFileSize value="10MB" />
  <maxSizeRollBackups value="2" />
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%date:%level %thread %logger - %message%newline" />
  </layout>
</appender>

你试过移除 <rollingStyle value="Composite" /> 吗?

上面是我的 log4net 配置,它按预期滚动文件,之前几天的日志都可用。


我尝试移除标签rollingStyle,但日志文件的结果与移除前相同。 - user3514034

0

我曾经遇到过同样的问题,看起来是log4net内部的一个bug。

最终我得到了

<staticLogFileName value="false" />
<datePattern value=".yyyyMMdd" />

所以我现在没有通用的log.txt文件,log4net直接记录到带有日期时间戳的文件中,但至少在午夜左右记录日志时它能正常工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接