我使用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日志记录的应用程序洞察记录的问题。
您只能在激活内部调试时进行调试。激活调试器并查看是否在某些时候重新配置了log4net。