Log4net随机停止日志记录

本文关键字:日志 记录 随机 Log4net | 更新日期: 2023-09-27 18:15:28

我的服务在eventlog中得到以下消息:

Exception: System.NullReferenceException
Message: Object reference not set to an instance of an object.
StackTrace:
   at log4net.Appender.RollingFileAppender.AdjustFileBeforeAppend() in C:'Projects'Framework'log4net-1.2.11'src'Appender'RollingFileAppender.cs:line 609
   at log4net.Appender.RollingFileAppender.Append(LoggingEvent loggingEvent) in C:'Projects'Framework'log4net-1.2.11'src'Appender'RollingFileAppender.cs:line 562
   at LSports.Common.Logger.Appenders.AsynchronousFileAppender.LogMessages() in d:'tfsV3'Dev'Common'Logger'LSports.Common.Logger'Appenders'AsynchronousFileAppender .cs:line 63
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()

我在系统中更多的项目中使用log4net,除了webservice,它只是随机地卡在那里。

我在log4net的源文件中查看异常发生的地方,当它试图执行文件滚动时发生

    if (m_rollSize) 
        {
            /* this line*/ if ((File != null) && ((CountingQuietTextWriter)QuietWriter).Count >= m_maxFileSize) 
            {
                RollOverSize();
            }
        }

是什么原因导致的?这完全是随机发生的

Log4net随机停止日志记录

经过多次搜索,我终于发现了问题,log4net实际上挂起了,因为它试图打印错误到控制台,我的应用程序是隐藏的,所以它无法打印到控制台,只是停止调用log4net的线程。