2013-10-30 33 views
10

我一直在閱讀logback手冊2個小時,仍然不知道如何去做我所需要的。Logback:如何只記錄錯誤到文件

它和標題所說的一樣簡單:我只想將錯誤記錄到文件中,並將其他級別(包括錯誤)記錄到控制檯。

這是我logcat.xml文件的根部分:

<root level="TRACE" > 
     <appender-ref ref="CONSOLE_APPENDER" /> 
     <appender-ref ref="FILE_APPENDER" /> 
    </root> 

具有這種配置的問題是,它記錄各個級別> = TRACE到兩個附加目的地。

我可以讓只有控制檯根目錄,並定義文件記錄器:

<logger name='file_logger' level='ERROR' > 
     <appender-ref ref="FILE_APPENDER" /> 
    </logger> 

但後來我不得不打電話給正常的記錄是這樣的:

LoggerFactory.getLogger(ClientClass.class); 

和文件記錄器是這樣的:

LoggerFactory.getLogger("file_logger"); 

我不想爲每個班級選擇記錄器。我只想使用類作爲參數從工廠獲取根日誌記錄器,並根據其級別執行正確的操作。

這可能嗎?

回答

19

要把它放到你的文件的appender定義:

<filter class="ch.qos.logback.classic.filter.ThresholdFilter"> 
     <level>ERROR</level> 
    </filter> 

ThresholdFilterlogback-classic.jar

+1

不錯。我正在使用[logback for android](https://github.com/tony19/logback-android),並且似乎也起作用。 –

+3

這也可以幫助; XSD for logback.xml。這可以幫助你使用配置變量。 https://github.com/enricopulatzo/logback-XSD – az3