gpt4 book ai didi

c# - Log4net : Rolling File Operation : Failing with Source does not exist

转载 作者:太空狗 更新时间:2023-10-29 23:50:02 27 4
gpt4 key购买 nike

自过去 3 年左右以来,我们一直在我们的多线程 WCF 窗口服务中使用 log4net。我们最近遇到了几次我们的服务变得无响应/进入挂起状态。在分析当时服务的故障转储时,我们遇到了我们的一个线程在滚动文件操作期间失败的情况。失败线程的堆栈跟踪如下:

log4net.Util.LogLog.EmitErrorLine(System.String) 
log4net.Util.LogLog.Warn(System.Type, System.String)
log4net.Appender.RollingFileAppender.RollFile(System.String, System.String)
log4net.Appender.RollingFileAppender.RollOverTime(Boolean)
log4net.Appender.RollingFileAppender.AdjustFileBeforeAppend()
log4net.Appender.RollingFileAppender.Append(log4net.Core.LoggingEvent)
log4net.Appender.AppenderSkeleton.DoAppend(log4net.Core.LoggingEvent)
....
....

在处理上述堆栈跟踪抛出的错误时,我们遇到了以下错误消息:

log4net:WARN Cannot RollFile [....] -> [....]. Source does not exist 

所有其他线程正在等待以下 log4net 方法:

log4net.Appender.AppenderSkeleton.DoAppend(log4net.Core.LoggingEvent) 
log4net.Util.AppenderAttachedImpl.AppendLoopOnAppenders(log4net.Core.LoggingEvent)
....
....

滚动文件日期模式如下:

<datePattern value=".yyyyMMdd-HH".log"">

我们无法理解这里到底出了什么问题导致服务变得无响应。如果发生某些错误,滚动文件操作是否会导致正在使用它的线程进入无响应状态?我们浏览了其他帖子,这些帖子告诉我们在 log4net 论坛上使用不同的日期模式,但更改日期模式并不能解决每个人的问题。我们想知道解决这个问题的完整证明方法是什么。

谢谢。

最佳答案

我在做了一些测试后发现我遇到了这个错误。我们将日志文件设置为每天滚动。出于测试目的,我让我的系统为“今天”写了一堆文件。然后我将计算机上的日期提前一天并重新运行。正如预期的那样,日志文件被重命名为前一天,并为新的一天写入了新的日志文件。

测试成功!

我将日期重置为正确的日期并重新开始。那是我收到此错误的时间。据我所知,它试图错误地滚动前一天的文件。

为了解决这个问题,我只是清除了所有的日志文件,让它从头开始。

关于c# - Log4net : Rolling File Operation : Failing with Source does not exist,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36027612/

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