我在这个log4net实现中做错了什么

本文关键字:错了 什么 实现 log4net | 更新日期: 2023-09-27 18:27:24

和许多其他人一样,我正在尝试将Log4net实现到我的C#.net应用程序中,但我无法让它为我工作。我做了很多搜索(包括在这个网站上),并尝试了许多不同的解决方案,但对我来说还没有任何效果。那么简单的问题是:我做错了什么???

Assembly.cs包含以下行。

[assembly: log4net.Config.XmlConfigurator(Watch = true)]

App.config包含以下内容。

<configSections> 
  <section name="log4net" 
           type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/> 
</configSections>
<log4net> 
  <root> 
    <level value="ALL"/> 
    <appender-ref value="RollingFileAppender"/> 
    <appender-ref value="ConsoleAppender"/> 
  </root>
  <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">  
    <param name="File" value="C:'Temp'Minion.log" />
    <appendToFile value="true" />
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
    <rollingStyle value="Size" />
    <maxSizeRollBackups value="5" />
    <maximumFileSize value="10MB" />
    <staticLogFileName value="true" />
    <layout type="log4net.Layout.PatternLayout">  
      <conversionPattern value="%date{Y-m-d H:i:s.u} | %thread | %method | %level | %message%newline" />
    </layout>
  </appender>
  <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender" >
    <layout type="log4net.Layout.PatternLayout">
      <param name="Header" value="[Header]'r'n" />
      <param name="Footer" value="[Footer]'r'n" />
      <param name="ConversionPattern" value="%date{Y-m-d H:i:s.u} | %thread | %method | %level | %message%newline" />
    </layout>
  </appender>
</log4net>

我的代码在类的开头包含以下内容。

private static readonly ILog logger =
LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

和这些测试开始时的主要功能。

logger.Debug("test1");
logger.Info("test2");
logger.Warn("test3");
logger.Error("test4");
logger.Fatal("test5");

编辑:

在log4net初始化期间,提示导致了以下错误。

log4net:ERROR XmlHierarchyConfigurator: No appender named [] could be found.
log4net:ERROR Appender named [] not found.
log4net:ERROR XmlHierarchyConfigurator: No appender named [] could be found.
log4net:ERROR Appender named [] not found.

我在这个log4net实现中做错了什么

更改此项:

<appender-ref value="RollingFileAppender"/> 
<appender-ref value="ConsoleAppender"/> 

到此:

<appender-ref ref="RollingFileAppender"/> 
<appender-ref ref="ConsoleAppender"/> 

看看它是否不会更好地合作。

我遇到了这个问题,因为在root中我有两个引用,而在代码中我只调用了一个。示例:

<root>
      <level value="INFO"/>
      <appender-ref ref="FileAppender"/>
      <appender-ref ref="ConsoleAppender" />
</root>
private static readonly log4net.ILog logger = LogManager.GetLogger("FileAppender");

在这种情况下,我给出了错误。请删除其中一个根引用,然后重试。像这个

<root>
      <level value="INFO"/>
      <appender-ref ref="FileAppender"/>
</root>
private static readonly log4net.ILog logger = LogManager.GetLogger("FileAppender");