Log4net停止写入事件日志

Ton*_*ile 2 .net c# log4net

我的应用程序使用Log4net写入事件查看器.这是我程序的App.config文件的log4net部分:

<log4net>
    <appender name="EventLogAppender" type="log4net.Appender.EventLogAppender" >
        <applicationName value="CarSystem" />
        <logName value="CarSystemLog" />
        <threshold value="DEBUG" />
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date [%thread] %-5level %logger [%ndc] - %message%newline" />
        </layout>
    </appender>
    <root>
        <level value="DEBUG" />
        <appender-ref ref="EventLogAppender" />
    </root>
</log4net> 
Run Code Online (Sandbox Code Playgroud)

现在,这些设置工作正常,直到前天下午12:30左右.突然,(当我需要查看日志中的消息时),它停止写入日志文件.

自定义事件日志位于查看器中.我今天重新启动了这台机器,但仍然没有新的东西进入日志.我将最大日志大小增加到10880 KB.

为什么不再将log4net写入我的日志文件?

Mar*_* N. 11

而不是寻找解决方案,更好地找到原因.

我建议您启用log4net的内部调试日志记录到文件(任何文件),它会在那里转储它的麻烦.当我的日志文件(事件日志应该是相同的东西)没有显示时,我已经多次使用过这个.

关于如何配置它说明在这里.

快速步骤:

  • 将其添加到您的app.config:
 <?xml version="1.0" encoding="utf-8" ?>
 <configuration>
     <appSettings>
         <add key="log4net.Internal.Debug" value="true"/>
     </appSettings>
 </configuration>
Run Code Online (Sandbox Code Playgroud)
  • 将此添加到配置(configuration部分).
 <system.diagnostics>
    <trace autoflush="true">
        <listeners>
              <add 
              name="textWriterTraceListener" 
              type="System.Diagnostics.TextWriterTraceListener" 
              initializeData="C:\tmp\log4net.txt" />
        </listeners>
    </trace>
 </system.diagnostics>
Run Code Online (Sandbox Code Playgroud)

任何有权限或任何问题的问题都将记录到跟踪文件中.