我有一个运行在单个服务器上的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服务器中的DB表。由于配置有点长,我已省略它以提高可读性。
我在我们的开发和测试环境中设置了这个,在那里它一直运行得很好。但在产品环境中,它似乎会生成重复的日志文件。第一个文件按照我的指定模式命名,即“logfile-yyyy-mm-dd.log”。第二个文件看起来是第一个文件的补充,日期模式被重复,即“logfile-yyyy-mm-dd.log.-yyyy-mm-dd.log”。
更有趣的是,两个文件中包含的条目会在时间上重叠。文件1可能包含从早上8点到中午12点的条目,文件2也会包含同一时间段内的条目。这些条目不是重复的,它们由服务的不同用户生成。文件1和2的副本可以是任何大小,因此这不是到达大小或日期/时间阈值并生成下一个所需日志文件的问题。
DB表项包含所有预期的行,每个日志文件中都包含一些行。这些行仅由WARN级别日志生成,每个日志文件中都会出现一些WARNings。
我已经向我们商店中精通log4net的人反馈了这个问题,但没有人知道是什么导致了这个重复文件的行为。感谢Stackland提供的任何想法。