logback 的 filter
生活随笔
收集整理的這篇文章主要介紹了
logback 的 filter
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
前言
- logback 1.2.3
概述
logback 的 filter 有:
- 級(jí)別過濾器 ch.qos.logback.classic.filter.LevelFilter。
- 閥值過濾器 ch.qos.logback.classic.filter.ThresholdFilter。
- 表達(dá)式過濾器 ch.qos.logback.core.filter.EvaluatorFilter。
- Groovy的表達(dá)式 ch.qos.logback.classic.boolex.GEventEvaluator。
- Java的表達(dá)式ch.qos.logback.classic.boolex.JaninoEventEvaluator。使用 Janino 解析java script。
- 包含標(biāo)記 ch.qos.logback.classic.boolex.OnMarkerEvaluator
- 自定義過濾器。
ch.qos.logback.classic.filter.LevelFilter
<filter class="ch.qos.logback.classic.filter.LevelFilter"><!-- 過濾的級(jí)別 --><level>INFO</level><!-- 匹配時(shí)的操作:接收(記錄) --><onMatch>ACCEPT</onMatch><!-- 不匹配時(shí)的操作:拒絕(不記錄) --><onMismatch>DENY</onMismatch></filter>ch.qos.logback.classic.filter.ThresholdFilter
<filter class="ch.qos.logback.classic.filter.ThresholdFilter"><level>INFO</level></filter>ch.qos.logback.classic.boolex.JaninoEventEvaluator
需要額外的兩個(gè)JAR包,commons-compiler.jar和janino.jar
<dependency><groupId>org.codehaus.janino</groupId><artifactId>commons-compiler</artifactId><version>3.0.12</version> </dependency> <dependency><groupId>org.codehaus.janino</groupId><artifactId>janino</artifactId><version>3.0.12</version> </dependency> <filter class="ch.qos.logback.core.filter.EvaluatorFilter"><evaluator> <!-- defaults to type ch.qos.logback.classic.boolex.JaninoEventEvaluator --><expression>return message.contains("There is no session with id");</expression></evaluator><OnMatch>DENY</OnMatch><OnMismatch>NEUTRAL</OnMismatch></filter>ch.qos.logback.classic.boolex.OnMarkerEvaluator
<filter class="ch.qos.logback.core.filter.EvaluatorFilter"><evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator"><marker>MYBATIS</marker></evaluator><OnMismatch>NEUTRAL</OnMismatch><OnMatch>DENY</OnMatch></filter>關(guān)于maker:
Logger 類中有攜帶 Marker 參數(shù)的方法,如下:
攜帶 Marker 參數(shù)的日志,可以添加%marker參數(shù)查看日志中的Marker(可能為空)。
%d{HH:mm:ss.SSS} [%thread][%marker] %-5level %logger{20} - [%method,%line] - %msg%n 15:44:41.649 [restartedMain][MYBATIS] DEBUG c.p.q.m.S.selectJobAll - [debug,137] - ==> Preparing: select job_id, job_name, job_group, invoke_target, cron_expression, misfire_policy, concurrent, status, create_by, create_time, remark from sys_job 15:44:41.650 [restartedMain][MYBATIS] DEBUG c.p.q.m.S.selectJobAll - [debug,137] - ==> Parameters: 15:44:41.666 [restartedMain][MYBATIS] DEBUG c.p.q.m.S.selectJobAll - [debug,137] - <== Total: 4 15:45:13.097 [peopleNumberScheduler_Worker-1][] INFO c.p.s.t.PeopleNumberTask - [calculatePeopleNumber,59] - 計(jì)算人數(shù)成功自定義過濾器
略。
Filter可以串聯(lián)
- DENY:日志將立即被拋棄不再經(jīng)過其他過濾器;
- NEUTRAL:有序列表里的下個(gè)過濾器過接著處理日志;(該級(jí)別既不處理,也不拋棄,相當(dāng)于沒有任何處理,日志會(huì)被保存下來(lái)并在本appender被執(zhí)行)
- ACCEPT:日志會(huì)被立即處理,不再經(jīng)過剩余過濾器。
參考
http://www.zhouqishan.cn/2019/05/17/logback%E8%BF%87%E6%BB%A4%E5%99%A8%E4%B9%8Bevaluatorfilter/
https://logback.qos.ch/demo.html
http://janino-compiler.github.io/janino/
總結(jié)
以上是生活随笔為你收集整理的logback 的 filter的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。