2015-05-11 81 views
0

我有兩個appender,一個文件appender和一個數據庫appender的配置文件。我想將所有內容都記錄到文件appender,並且只將日誌記錄到數據庫appender。在部分中設置appender時,它會記錄日誌,但所有日誌事件都發送給appender,這不是我想要的。我的log4net配置文件有什麼問題

我改變了配置,但是使用這個當前配置,異常會被記錄到數據庫,並且沒有任何內容被寫入文件appender。誰能告訴我爲什麼我沒有得到任何寫入文件appender的東西?

<log4net debug="true"> 
    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> 
     <file value="C:\Log4net\Workflow\TestLog.txt" /> 
     <threshold value="All" /> 
     <appendToFile value="true" /> 
     <rollingStyle value="Size" /> 
     <maxSizeRollBackups value="10" /> 
     <maximumFileSize value="10KB" /> 
     <staticLogFileName value="true" /> 
     <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%-5p {%logger} %d %5rms %-22.22c{1} %-18.18M - %m%n" /> 
     </layout> 
    </appender> 
    <appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender"> 
     <!-- Removed to keep this snippet simple--> 
    </appender> 
    <root> 
     <level value="Error" /> 
     <appender-ref ref="AdoNetAppender" /> 
    </root> 
    <logger name="AllLogs"> 
     <level value="ALL" /> 
     <appender-ref ref="RollingLogFileAppender" />  
    </logger> 

    </log4net> 

回答

1

你在這裏什麼是以下幾點:

  • 所有日誌同級別事件Error以上會去從一個記錄器,其名義發起的AdoNetAppender
  • 所有日誌中的事件是基於AllLogs將去RollingLogFileAppender

從我的理解你想所有日誌默認爲f ile,並且只有錯誤的數據纔會被髮送到數據庫。然後,只需兩個附加目的地添加到您的根記錄這樣既得到的所有事件,並添加過濾器,只讓你感興趣的穿過過濾器:在你的數據庫的appender的水平範圍過濾器將工作

<log4net debug="true"> 

    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> 
     <!-- rest of config snipped to save space --> 
    </appender> 
    <appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender"> 
     <filter type="log4net.Filter.LevelRangeFilter"> 
      <levelMin value="ERROR" /> 
      <levelMax value="FATAL" /> 
     </filter> 
     <!-- rest of config snipped to save space --> 
    </appender> 

    <root> 
     <appender-ref ref="AdoNetAppender" /> 
     <appender-ref ref="RollingLogFileAppender" /> 
    </root> 
</log4net> 

當然如果您不希望在滾動文件附件

以上過濾錯誤和以上錯誤