Log4Net RollingFileAppender丢失消息

时间:2018-03-02 13:43:34

标签: c# log4net rollingfileappender

我使用log4net登录文件,由于某种原因,某些日志消息丢失,并且始终位于同一位置。首先是我的配置:

<log4net>
  <root>
    <level value="ALL" />
    <appender-ref ref="RollingFileAppender" />
  </root>
  <appender name="aiAppender" type="Microsoft.ApplicationInsights.Log4NetAppender.ApplicationInsightsAppender, Microsoft.ApplicationInsights.Log4NetAppender">
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%message%newline" />
    </layout>
  </appender>
  <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
    <file value="logs\import.txt" />
    <appendToFile value="true" />
    <rollingStyle value="Size" />
    <maxSizeRollBackups value="10" />
    <maximumFileSize value="10MB" />
    <staticLogFileName value="true" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
    </layout>
  </appender>
</log4net>

aiAppender虽然已定义,但未使用。

日志模式是我最初突发记录大约88行,其中所有都在那里。然后缺少日志周期开始并持续约6秒。然后记录继续,从那一点开始记录所有内容。

如果我删除了突发记录并仅用几个日志条目替换它,则不会丢失任何内容。

显然RollingFileAppender会丢失消息。我没有意识到这一点。

我确定这是log4net的问题,因为我有一个日志包装器,我将日志消息分成log4net和应用程序见解(aiAppender对我们来说做得不够好)和应用程序见解确实收到log4net不记录的消息。

我可以配置RollingFileAppender以避免丢失消息吗?

编辑:日志包装器首先记录到log4net,然后记录到应用程序洞察,因此这不是关于阻止log4net记录的应用程序洞察记录的问题。

1 个答案:

答案 0 :(得分:0)

您只能在激活内部调试时进行调试。激活调试器并查看是否在某些时候重新配置了log4net。