gpt4 book ai didi

Log4Net RollingFileAppender 生成重复日志

转载 作者:行者123 更新时间:2023-12-05 08:02:03 24 4
gpt4 key购买 nike

我有一个在单个服务器上运行的 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 中的数据库表。这个的配置有点长,所以为了便于阅读我省略了它。

我在我们的 Dev 和 TST 环境中进行了此设置,它一直运行良好。在PRD环境下,好像会生成重复的日志文件。第一个是根据我指定的模式命名的,即“logfile-yyyy-mm-dd.log”。第二个文件看起来像是第一个文件的补充,日期模式重复,即“logfile-yyyy-mm-dd.log.-yyyy-mm-dd.log”。

更有趣的是,两个文件中包含的条目按时间重叠。文件 1 可能包含上午 8 点到 12 点的条目,文件 2 也将包含同一时间段的条目。这些条目不是重复的,它们是由服务的不同用户生成的。文件 1 和 2 的副本几乎可以是任意大小,因此这不是达到大小或日期/时间阈值并生成下一个所需日志文件的问题。

数据库表条目包含所有预期的行,其中一些包含在每个日志文件中。这些行仅由 WARN 级别日志记录生成,并且一些 WARNings 出现在每个日志文件中。

我已经从我们店里一些精通 log4net 的人那里反射(reflect)了这一点,但是没有人知道可能导致这种重复文件行为的原因。 Stackland 的任何想法表示赞赏。

最佳答案

您的日期模式后不应有 .log。我也不确定为什么你在根目录中声明了两个附加程序。您应该能够完全摆脱根目录,因为您的其余配置没有任何意义(假设您没有更多示例中没有的内容)。

关于Log4Net RollingFileAppender 生成重复日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10639682/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com