logback學習與使用(三)
阿新 • • 發佈:2019-02-05
<filter>:
過濾器,執行一個過濾器會返回個列舉值,即DENY,NEUTRAL,ACCEPT。返回DENY,日誌將被拋棄不再經過其他過濾器,返回NEUTRAL,有序列表中的下個過濾器會接著處理日誌;返回ACCEPT,日誌會立即被處理,不再經過剩餘的過濾器。此節點被新增到<appender>,可以有一個或者多個,順序執行。
下面是幾個常用的過濾器:
LevelFilter:級別過濾器,根據日誌級別進行過濾,過濾器會根據onMath和onMismatch接受或者拒絕日誌。
<level>:設定過濾級別
<onMatch>:用於配置符合過濾條件的日誌的操作
<onMismatch>:用於配置不符合過濾條件的日誌的操作
例如下面程式碼,日誌級別為INFO,所有INFO級別的日誌交給appender處理,非INFO級別的,被過濾掉
ThresholdFilter:臨界值過濾器,過濾掉低於指定臨界值的日誌。當日止界別等於或者高於臨界值時,返回NEUTRAL;當日志級別低於臨界值時會被拒絕<appender name="A" class="ch.qos.logback.core.ConsoleAppender"> <span style="white-space:pre"> </span><filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>INFO</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> <encoder> <pattern>%-4relative [%thread] %-5level %logger{30} - %msg%n</pattern> </encoder> </appender>
例如下面配置,過濾掉多餘低於INFO的日誌
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter>
過濾器在我的專案中不經常使用,這裡不再過多的描述,具體可參考官方文件。