在log4net日志中,页眉和页脚的出现次数增加了两倍

时间:2012-11-08 09:26:48

标签: c# .net log4net log4net-appender

以下是app.config中的log4net部分

   <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,     log4net" />
   </configSections>      
   <log4net debug="true">
     <appender name="LogFileAppender" type="log4net.Appender.FileAppender">
      <file type="log4net.Util.PatternString" value="${TMP}\SRG\Logs\Log_%env{USERNAME}_%date{yyyyMMdd}.log" />
      <appendToFile value="true" />
      <bufferSize value="20" />
      <LockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
      <layout type="log4net.Layout.PatternLayout">
      <header type="log4net.Util.PatternString" value="[Log Starts]%newline" />        
      <footer type="log4net.Util.PatternString" value="[Log Ends]%newline" />        
      <conversionPattern value="%date [%username] - %message%newline" />
      </layout>
     </appender>  

     <logger name="SRGApplicationDebugLog">
      <level value="DEBUG" />
      <appender-ref ref="LogFileAppender" />
     </logger>
   </log4net>  

问题1:每当我的应用程序启动时,我的页眉和页脚都会两次,但我需要避免它。

  

[Log Starts]
     [记录结束]
     [记录开始]
     [记录结束]
      [记录开始]
     2012-11-08 12:25:03,376 [用户名] - 申请开始了      [记录结束]

问题2:我没有从两个空页眉页脚来到哪里。

  1. 我正在创建如下所示的记录器:
  2. _debugLogger = LogManager.GetLogger("SRGApplicationDebugLog");    
    XmlConfigurator.Configure(); 
    
    1. 使用Logger:
    2. _debugLogger.DebugFormat(logMessage);    
      
      1. 我在AssemblyInfo.cs中为log4net
      2. 显式添加了这一行
        [assembly: XmlConfigurator(Watch = true)]    
        

        问题:想以粗体

        解决问题

2 个答案:

答案 0 :(得分:5)

您不需要

 XmlConfigurator.Configure();

如果你有

[assembly: XmlConfigurator(Watch = true)]

两者都会产生两个页眉和两个页脚。

至于为什么你有三套,或许你打电话给XmlConfigurator.Configure()两次。

答案 1 :(得分:0)

  

将XmlConfigurator.Configure()放在多个位置可能会导致多于一个页眉和页脚对。

     

XmlConfigurator.Configure()只应在解决方案的某个位置定义。更好的&gt;方法是将它放在AssemblyInfo.cs中。