我有一个在单个服务器上运行的 WCF 服务,使用 Log4net 通过 INFO 和 WARN 级别日志条目跟踪使用情况。使用具有以下非常标准配置的 RollingFileAppender:
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="\\mylocation\data\PRD\myApp\MyService"/>
<appendToFile value="true" />
<rollingStyle value="Date" />
<datePattern value="-yyyy-MM-dd'.log'" />
<staticLogFileName value="false" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
</layout>
</appender>
<root>
<level value="ALL" />
<appender-ref ref="RollingLogFileAppender" />
<appender-ref ref="ADONetAppender_SqlServer" />
</root>
我还使用 ADONetAppender,它接收重定向的“WARN”级别数据并通过存储过程将其写入 SQL Server 中的数据库表。这个配置有点长,所以为了可读性我省略了它。
我在我们的开发和 TST 环境中进行了此设置,并且运行良好。在PRD环境中,似乎会生成重复的日志文件。第一个是根据我指定的模式命名的,即“logfile-yyyy-mm-dd.log”。第二个文件看起来像是第一个文件的补充,日期模式重复,即“logfile-yyyy-mm-dd.log.-yyyy-mm-dd.log”。
更有趣的是,两个文件中包含的条目在时间上重叠。文件 1 可能包含上午 8 点到中午 12 点的条目,文件 2 也将包含同一时间段的条目。这些条目不是重复的,它们是由服务的不同用户生成的。文件 1 和 2 的副本几乎可以是任何大小,因此这不是达到大小或日期/时间阈值并生成下一个所需日志文件的问题。
数据库表条目包含所有预期的行,其中一些行包含在每个日志文件中。这些行仅由 WARN 级别日志记录生成,并且每个日志文件中都会出现一些 WARNing。
我已经向我们店里一些精通 log4net 的人反馈了这个问题,但没有人清楚是什么导致了这种重复文件行为。斯塔克兰的任何想法表示赞赏。
您的日期模式后面不应有 .log。我也不确定为什么你在根目录中声明了两个附加程序。您应该能够完全摆脱根,因为您的配置的其余部分没有任何用途(假设您没有更多示例中未包含的内容)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)