我有一个WCF服务运行在单个服务器上,使用Log4net通过INFO和WARN级别日志条目跟踪使用情况。使用RollingFileAppender进行具有以下非常标准配置:Log4Net 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,它接收重定向“警告”级别的数据,并通过一个存储过程在SQL服务器将其写入到数据库表。这个配置有点长,所以为了便于阅读,我省略了它。
我在我们的开发和TST环境中已经运行良好的设置。在PRD环境中,它似乎会生成重复的日志文件。第一个按照我指定的模式命名,即“logfile-yyyy-mm-dd.log”。第二个文件看起来像是第一个文件的附加文件,日期格式重复,即“logfile-yyyy-mm-dd.log.-yyyy-mm-dd.log”。
使这个更有趣的是,两个文件中包含的条目按时间重叠。文件1可能具有从上午8点到上午12点的条目,文件2也将包含来自相同时间段的条目。条目不重复,它们由服务的不同用户生成。文件1和文件2的副本几乎可以任意大小,因此这不是达到大小或日期/时间阈值并生成下一个必需的日志文件的问题。
数据库表条目包含所有预期的行,其中一些包含在每个日志文件中。这些行仅由WARN级别日志记录生成,并且每个日志文件中都会显示一些警告。
我已经反弹了一些在我们的商店log4net精明的人,但没有人有什么可能会导致这种重复的文件行为的好主意。来自Stackland的任何想法都很感激。
谢谢,我将检查这些点。我怀疑他们不是重复日志文件的原因,因为相同的设置不会在我们的开发和测试环境中生成第二个文件。 –
@GSW是的,我没有声称他们会解决这个问题。但是,它们不应该影响伐木,如果它们这样做,它可能会以不希望的方式。 – evanmcdonnal