1. 程式人生 > >logback學習與使用(三)

logback學習與使用(三)

<filter>:

過濾器,執行一個過濾器會返回個列舉值,即DENY,NEUTRAL,ACCEPT。返回DENY,日誌將被拋棄不再經過其他過濾器,返回NEUTRAL,有序列表中的下個過濾器會接著處理日誌;返回ACCEPT,日誌會立即被處理,不再經過剩餘的過濾器。此節點被新增到<appender>,可以有一個或者多個,順序執行。

下面是幾個常用的過濾器:

LevelFilter:級別過濾器,根據日誌級別進行過濾,過濾器會根據onMath和onMismatch接受或者拒絕日誌。

<level>:設定過濾級別

<onMatch>:用於配置符合過濾條件的日誌的操作

<onMismatch>:用於配置不符合過濾條件的日誌的操作

例如下面程式碼,日誌級別為INFO,所有INFO級別的日誌交給appender處理,非INFO級別的,被過濾掉

<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>
ThresholdFilter:臨界值過濾器,過濾掉低於指定臨界值的日誌。當日止界別等於或者高於臨界值時,返回NEUTRAL;當日志級別低於臨界值時會被拒絕

例如下面配置,過濾掉多餘低於INFO的日誌

<filter class="ch.qos.logback.classic.filter.ThresholdFilter">   
      <level>INFO</level>   
</filter> 
過濾器在我的專案中不經常使用,這裡不再過多的描述,具體可參考官方文件。