log4net第二天开始时覆盖我的日志文件

时间:2014-12-01 11:15:54

标签: c# log4net log4net-configuration

我在这个场景中遇到了log4net的问题

  1. 今天是2014年11月30日
  2. 当前日志文件名为log.txt
  3. 日志文件全天建立。
  4. 第二天(2014年12月1日),日志文件存在于log.txt20141130
  5. 但是当我打开日志文件时,30/11的所有条目都会丢失,日志中只包含日期为2014年12月1日的非常少数条目。
  6. 现在我现在正在丢失每天的日志,因为它们被午夜后的前几个日志覆盖。

    有什么方法可以阻止这种情况发生吗?

    三江源

    这是我的Config 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 :(得分: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配置,它按预期滚动文件,前几天记录全部可用。

答案 1 :(得分:0)

我遇到了同样的问题,它看起来像是log4net中的一个错误。

我最终得到了

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

所以我现在没有通用的log.txt文件,log4net直接记录到名称中带有日期戳的文件,但至少它可以在午夜记录下正常工作。