日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

logback 的 filter

發(fā)布時(shí)間:2024/9/19 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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ù)的方法,如下:

public interface Logger {public void debug(Marker marker, String msg);public void error(Marker marker, String msg);... }

攜帶 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ì)被保存下來并在本appender被執(zhí)行)
  • ACCEPT:日志會(huì)被立即處理,不再經(jīng)過剩余過濾器。
<!-- 控制臺(tái)輸出 --> <appender name="console" class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>${log.pattern}</pattern></encoder><!-- 過濾調(diào)某些特征的日志 --><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><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><!-- >= INFO 的日志被記錄下來 --><filter class="ch.qos.logback.classic.filter.ThresholdFilter"><level>INFO</level></filter> </appender>

參考

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的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。