3

以下是 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:每当我的应用程序启动时,我都会额外获得两次页眉和页脚,但我需要避免它。

[日志开始]
[日志结束]
[日志开始]
[日志结束]
[日志开始]
2012-11-08 12:25:03,376 [用户名] - 应用程序启动
[日志结束]

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

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

问题:想解决粗体字的问题

4

2 回答 2

7

你不需要

 XmlConfigurator.Configure();

如果你有

[assembly: XmlConfigurator(Watch = true)]

两者都将导致两个页眉和两个页脚。

至于为什么你有三套,也许你叫 XmlConfigurator.Configure()了两次。

于 2012-11-08T17:51:02.727 回答
0

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

XmlConfigurator.Configure() 应仅在解决方案中的一处定义。更好的>方法是将它放在AssemblyInfo.cs中。

于 2012-11-09T05:28:12.220 回答