gpt4 book ai didi

log4net - 为什么在使用Log4Net时在文件名上附加日期两次?

转载 作者:行者123 更新时间:2023-12-03 11:56:38 24 4
gpt4 key购买 nike

我试图将日期添加到我的日志文件名中,并且能够按照我在stackoverflow中找到的一些建议使其工作。一切正常,但由于某种原因,第一个文件始终将日期附加两次。

例如,我得到的是 log.2009-02-23.log.2009-02-23.log而不是 log.2009-02-23.log

我觉得这很奇怪,很容易理解,这是一个非常简单的代码。这不像我让它在多线程环境中运行。

我的log4net配置:

<log4net>
<appender name="MyLog" type="log4net.Appender.RollingFileAppender">
<file value="../../Logs/Mylog"/>
<staticLogFileName value="false" />
<appendToFile value="true"/>
<rollingStyle value="Date"/>
<datePattern value=".yyyy-MM-dd.lo\g" />
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d{DATE} [%t] %-5p %c - %m%n"/>
</layout>
</appender>
<root>
<level value="INFO"/>
<appender-ref ref="MyLog"/>
</root>
</log4net>

有什么想法吗?

编辑:我想添加有关我正在其中进行测试的环境的信息。
-asp.net
-.net Framework 2.0
-Windows Server 2003 64位Service Pack 2
-log4net 1.2.10

最佳答案

如果在初始化日志系统时访问日志文件时遇到问题,则会发生这种情况。
如果两次初始化日志系统,或者在运行另一个副本的同时运行程序并写入日志文件,或者在文本编辑器中编辑日志文件,则可能会发生这种情况。基本上,任何在log4net init运行时导致日志文件写入锁定的因素。

检查您的代码中是否有重复调用log4net init的方法-例如,您可能是在构造函数中而不是在singleton的静态构造函数或全局init中初始化。

如果您在“网络花园”配置中运行并且未在文件名中包含PID,也会发生这种情况,因为每个不同的Web服务器进程都会尝试写入同一文件。如果使用网络花园并写入文件,请将pid添加到文件名模式,以便每个服务器进程获得自己的文件。

关于log4net - 为什么在使用Log4Net时在文件名上附加日期两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/579688/

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