logback EvaluatorFilter實(shí)現(xiàn)同時(shí)記錄多個(gè)level級(jí)別的日志
使用求值過濾器
為了方便日志查看,想將不同level的日志輸出到同一個(gè)日志文件里.例如:我想將trace & debug級(jí)別的日志輸出到一個(gè)文件里.這時(shí)候使用求值過濾器:ch.qos.logback.core.filter.EvaluatorFilter就非常方便了.
<filter class="ch.qos.logback.core.filter.EvaluatorFilter"> <evaluator> <!-- 默認(rèn)為 ch.qos.logback.classic.boolex.JaninoEventEvaluator --> <expression>return message.contains("billing");</expression> </evaluator> <OnMatch>ACCEPT </OnMatch> <OnMismatch>DENY</OnMismatch> </filter>
evaluator: 它以任意的java布爾值表達(dá)式作為求值條件,求值條件在配置文件解釋過成功被動(dòng)態(tài)編譯,布爾值表達(dá)式返回true就表示符合過濾條件。evaluator有個(gè)子標(biāo)簽<expression>,用于配置求值條件。
expression: 求值表達(dá)式作用于當(dāng)前日志
logback向求值表達(dá)式暴露日志的各種字段
例子
輸出DEBUG&TRACE的信息到一個(gè)日志文件里
<!-- 輸出DEBUG&TRACE的信息到日志文件里 --> <appender name="FILE-SQL" class="ch.qos.logback.core.rolling.RollingFileAppender"> <filter class="ch.qos.logback.core.filter.EvaluatorFilter"> <evaluator> <!-- DEBUG=10000 TRACE=5000 --> <expression><![CDATA[ return (level==10000 || level==5000); ]]></expression> </evaluator> <OnMatch>ACCEPT </OnMatch> <OnMismatch>DENY</OnMismatch> </filter> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <!-- rollover daily --> <fileNamePattern>${LOG_DIR}/sql_dev_%d{yyyy-MM-dd}_%i.log</fileNamePattern> <!-- each file should be at most 100MB, keep 30 days worth of history, but at most 10GB --> <maxFileSize>100MB</maxFileSize> <maxHistory>30</maxHistory> <totalSizeCap>10GB</totalSizeCap> </rollingPolicy> <encoder> <pattern>${LOG_PATTERN}</pattern> <charset>UTF-8</charset> </encoder> </appender>
注意: EvaluatorFilter需要依賴動(dòng)態(tài)編譯器janino,可以使用下面的方式來引入:
Maven:
<dependency> <groupId>org.codehaus.janino</groupId> <artifactId>janino</artifactId> <version>3.1.8</version> </dependency>
Gradle:
implementation 'org.codehaus.janino:janino:3.1.8'
以上就是logback EvaluatorFilter實(shí)現(xiàn)同時(shí)記錄多個(gè)level級(jí)別的日志的詳細(xì)內(nèi)容,更多關(guān)于logback EvaluatorFilter日志記錄的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
SpringBoot讀寫xml上傳到AWS存儲(chǔ)服務(wù)S3的示例
這篇文章主要介紹了SpringBoot讀寫xml上傳到S3的示例,幫助大家更好的理解和使用springboot框架,感興趣的朋友可以了解下2020-10-10Java設(shè)計(jì)模式之java責(zé)任鏈模式詳解
這篇文章主要介紹了JAVA 責(zé)任鏈模式的的相關(guān)資料,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下2021-09-09Spring Boot整合Mybatis Plus和Swagger2的教程詳解
這篇文章主要介紹了Spring Boot整合Mybatis Plus和Swagger2的教程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-02-02springboot 實(shí)現(xiàn)Http接口加簽、驗(yàn)簽操作方法
這篇文章主要介紹了springboot 實(shí)現(xiàn)Http接口加簽、驗(yàn)簽操作,服務(wù)之間接口調(diào)用,通過簽名作為安全認(rèn)證來保證API的安全性,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-09-09Mybatis-Plus中g(shù)etOne方法獲取最新一條數(shù)據(jù)的示例代碼
這篇文章主要介紹了Mybatis-Plus中g(shù)etOne方法獲取最新一條數(shù)據(jù),本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-05-05Spring中的策略模式簡(jiǎn)單實(shí)現(xiàn)與使用分析
這篇文章主要介紹了Spring中的策略模式簡(jiǎn)單實(shí)現(xiàn)與使用分析,去初始化時(shí)除了?initMultipartResolver(上傳文件)沒有獲取?Properties?defaultStrategies;默認(rèn)策略,其他的八大件都會(huì)使用到策略模式,需要的朋友可以參考下2024-01-01