Log4net多个记录器-文件记录器不工作

Log4net多个记录器-文件记录器不工作,log4net,log4net-configuration,Log4net,Log4net Configuration,将以下配置日志添加到Eventlog,它适用于SmtpSender。但是filelogger不记录日志,它在路径中创建日志文件,但不执行任何调试日志 <root> <level value="DEBUG" /> <appender-ref ref="EventLogAppender" /> </root> <logger additivity="false" name="SmtpLogger"> <leve

将以下配置日志添加到Eventlog,它适用于SmtpSender。但是filelogger不记录日志,它在路径中创建日志文件,但不执行任何调试日志

<root>
  <level value="DEBUG" />      
  <appender-ref ref="EventLogAppender" />
</root>
<logger additivity="false" name="SmtpLogger">
  <level value="FATAL"/>
  <appender-ref ref="SmtpAppender" />
</logger>
<logger name="RollingFileAppender">
  <level value="DEBUG"/>
  <appender-ref ref="RollingFileAppender"/>
</logger>    

但当我将根记录器更改为RollingFileAppender时,它会记录为文件

<root>
  <level value="DEBUG" />      
  <appender-ref ref="RollingFileAppender" />
</root>
<logger additivity="false" name="SmtpLogger">
  <level value="FATAL"/>
  <appender-ref ref="SmtpAppender" />
</logger>
<logger name="RollingFileAppender">
  <level value="DEBUG"/>
  <appender-ref ref="RollingFileAppender"/>
</logger>    


知道为什么会这样吗?如何让文件记录器在这种情况下工作。

您没有发布appender Confriguration,但是找出问题的最简单方法是启用内部调试。这将告诉您滚动文件追加器中的错误:

有两种不同的方法可以在log4net中启用内部调试。 下面列出了这些问题。首选方法是指定 应用程序配置文件中的log4net.Internal.Debug选项

•也可以通过在中设置值来启用内部调试 应用程序的配置文件(不是log4net配置文件, 除非log4net配置数据嵌入到应用程序的配置中 文件)。log4net.Internal.Debug应用程序设置必须设置为 该值为真。例如:


可以用来捕获这些
信息

当log4net内部调试消息写入 System.Diagnostics.Trace系统可以重定向这些 将消息发送到本地文件。您可以通过添加 将以下内容添加到应用程序的.config文件:


...

您没有发布appender混淆设置,但是找出错误的最简单方法是启用内部调试。这将告诉您滚动文件追加器中的错误:

有两种不同的方法可以在log4net中启用内部调试。 下面列出了这些问题。首选方法是指定 应用程序配置文件中的log4net.Internal.Debug选项

•也可以通过在中设置值来启用内部调试 应用程序的配置文件(不是log4net配置文件, 除非log4net配置数据嵌入到应用程序的配置中 文件)。log4net.Internal.Debug应用程序设置必须设置为 该值为真。例如:


可以用来捕获这些
信息

当log4net内部调试消息写入 System.Diagnostics.Trace系统可以重定向这些 将消息发送到本地文件。您可以通过添加 将以下内容添加到应用程序的.config文件:


...

我成功地完成了日志记录工作,事实上,我做了一个实验,它成功了

将RollingFileAppender添加到根元素

<root>
  <level value="DEBUG" />      
  <appender-ref ref="EventLogAppender" />    
  <appender-ref ref="RollingFileAppender"/>
</root>
<logger additivity="false" name="SmtpLogger">
<level value="FATAL"/>
<appender-ref ref="SmtpAppender" />
</logger>
<logger name="RollingFileAppender">
<level value="DEBUG"/>
<appender-ref ref="RollingFileAppender"/>
</logger> 

我成功地完成了日志记录工作,事实上,我做了一个实验,它成功了

将RollingFileAppender添加到根元素

<root>
  <level value="DEBUG" />      
  <appender-ref ref="EventLogAppender" />    
  <appender-ref ref="RollingFileAppender"/>
</root>
<logger additivity="false" name="SmtpLogger">
<level value="FATAL"/>
<appender-ref ref="SmtpAppender" />
</logger>
<logger name="RollingFileAppender">
<level value="DEBUG"/>
<appender-ref ref="RollingFileAppender"/>
</logger> 


谢谢Peter,我已经这么做了。没有异常,它正确配置了RollingfileAppender。权限就足够了,当RollingFileAppender作为根appender时,它工作得很好。谢谢Peter,我已经这样做了。没有异常,它正确配置了RollingfileAppender。权限就足够了,当RollingFileAppender作为根appender时,它可以正常工作。
<root>
  <level value="DEBUG" />      
  <appender-ref ref="EventLogAppender" />    
  <appender-ref ref="RollingFileAppender"/>
</root>
<logger additivity="false" name="SmtpLogger">
<level value="FATAL"/>
<appender-ref ref="SmtpAppender" />
</logger>
<logger name="RollingFileAppender">
<level value="DEBUG"/>
<appender-ref ref="RollingFileAppender"/>
</logger>