2011-02-12 567 views
2

我想要擴展logback以將帶有ERROR日誌級別的日誌發送到我們的內部日誌記錄服務(使用http post和一些自定義參數)。logback自定義日誌級別處理

正在編寫自定義logback過濾最好的方法嗎?對我來說,「過濾器」一詞聽起來更像是「過濾出日誌」。

回答

2

您可以使用ThresholdFilter,它只會記錄特定appender上給定日誌級別(或更高級別)的消息。這裏是一個例子,關於如何配置日誌級別ERROR的ThresholdFilter。它會利用周圍ConsoleAppender記錄所有錯誤消息:

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
<!-- ... --> 
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender"> 
     <!-- log messages with ERROR (and above) only --> 
     <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> 
      <level>ERROR</level> 
     </filter> 

     <encoder> 
      <pattern>%date{yyyy-MM-dd - HH:mm:ss} %-5level %logger{60} - %message%n</pattern> 
     </encoder> 
    </appender> 
<!-- ... --> 
</configuration> 

所以您必須使用添加器執行,這將記錄到通過HTTP POST自定義日誌服務更換sourrounding ConsoleAppender。可以使用ThresholdFilter,如上例所示。

學習如何實現自己的追加程序,你可能想看看simpledb-appender項目,該項目實現了亞馬遜的SimpleDB定製的附加器。