2017-03-08 107 views
0

我有folloging XML來log4net的警告級別不顯示log4net的

<configSections> 
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> 
    </configSections> 
    <log4net> 
    <root> 
     <level value="ALL" /> 
     <appender-ref ref="FileAppenderXml" /> 
    </root> 
    <appender name="FileAppenderXml" type="log4net.Appender.RollingFileAppender"> 
     <file type="log4net.Util.PatternString" value="logs\%date{yyyy}\%date{MM}\%date{yyyyMMdd}.xml"/> 
     <appendToFile value="true"/> 
     <rollingStyle value="Date" /> 
     <datePattern value="yyyyMMdd" /> 
     <layout type="log4net.Layout.XmlLayoutSchemaLog4j"> 
     <locationInfo value="true"/> 
     <conversionPattern value="%date [%thread] %-5level - %message%newline" /> 
     </layout> 
     <param name="Encoding" value="utf-8" /> 
    </appender> 
    </log4net> 

使用鴨綠江我開始檢測警告(WARN)事件不是由應用程序生成。我使用4級(INFO,WARN,DEBUG,ERROR),只有WARN類型是未示出的。

這裏摘錄:

 switch (typeLog) 
     { 
      case elogType.infoType: 
       log.Info(currentMessage); 
       break; 

      case elogType.errorType: 
       log.Error(currentMessage); 
       break; 

      case elogType.debugType: 
       log.Debug(currentMessage); 
       break; 

      case elogType.warningType : 
       log.Warn(currentMessage); 
       break; 
     } 

難道是一些XML配置或可能的代碼?

+0

似乎很奇怪。你看過實際的XML文件以查看'WARN'日誌是否在那裏? – stuartd

+0

是的,除暖之外的所有事件類型(級別)都會出現。對我來說也很奇怪。 – xavendano

+0

你有一個'LevelRangeFilter'的地方嗎?我不熟悉Yalv,所以我不確定如何知道只有WARN沒有生成。 –

回答

1

所以這個問題似乎是當WARN事件觸發但顯示爲「INFO」時。

按照documentation:

當一級信息登錄使用的實際水平不是信息而是LoggerRepository.LevelMap["INFO"]值。這是Info的默認值,但可以通過重新配置級別圖來更改。