https://gitee.com/DanShenGuiZu/learnDemo/tree/master/logback-learn
设置过滤级别。
用于配置符合过滤条件的操作。
用于配置不符合过滤条件的操作。
将过滤器的日志级别配置为info,所有info级别的日志交给appender处理,非info级别的日志,被过滤掉。
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<!-- 表示打印到控制台 -->
<appender name="limeFlogger" class="ch.qos.logback.core.ConsoleAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<!--设置过滤级别info-->
<level>info</level>
<!--所有info级别的日志交给appender处理-->
<onMatch>ACCEPT</onMatch>
<!--非info级别的日志,被过滤掉-->
<onMismatch>DENY</onMismatch>
</filter>
<!-- encoder 默认配置为PatternLayoutEncoder -->
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
<target>System.err</target>
</appender>
<logger name="fei.zhou.logbacklearn.business.demo.Demo3" level="debug" additivity="true">
<appender-ref ref="limeFlogger"/>
</logger>
<root/>
</configuration>

设置过滤级别。
过滤掉所有低于info级别的日志
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<!-- 表示打印到控制台 -->
<appender name="limeFlogger" class="ch.qos.logback.core.ConsoleAppender">
<!--临界值过滤器,过滤掉低于指定临界值的日志-->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<!--过滤掉所有低于info级别的日志-->
<level>info</level>
</filter>
<!-- encoder 默认配置为PatternLayoutEncoder -->
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
<target>System.err</target>
</appender>
<logger name="fei.zhou.logbacklearn.business.demo.Demo3" level="debug" additivity="true">
<appender-ref ref="limeFlogger"/>
</logger>
<root/>
</configuration>

用于配置符合过滤条件的操作。
用于配置不符合过滤条件的操作。

<dependency>
<groupId>org.codehaus.janino</groupId>
<artifactId>janino</artifactId>
<version>3.0.7</version>
</dependency>
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<property name="contextName" value="limeLog" />
<timestamp key="bySecond" datePattern="yyyyMMdd'T'HH:mm:ss" />
<contextName>${contextName} - ${bySecond}</contextName>
<!-- 表示打印到控制台 -->
<appender name="limeFlogger" class="ch.qos.logback.core.ConsoleAppender">
<filter class="ch.qos.logback.core.filter.EvaluatorFilter">
<evaluator>
<!-- 默认为 ch.qos.logback.classic.boolex.JaninoEventEvaluator -->
<!--过滤掉所有日志消息中不包含"aaa"字符串的日志。-->
<expression>return message.contains("aaa");</expression>
</evaluator>
<!--用于配置符合过滤条件的操作。-->
<OnMatch>ACCEPT </OnMatch>
<!--用于配置不符合过滤条件的操作-->
<OnMismatch>DENY</OnMismatch>
</filter>
<!-- encoder 默认配置为PatternLayoutEncoder -->
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
<target>System.err</target>
</appender>
<logger name="fei.zhou.logbacklearn.business.demo.Demo4" level="debug" additivity="true">
<appender-ref ref="limeFlogger" />
</logger>
<root />
</configuration>

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<property name="contextName" value="limeLog" />
<timestamp key="bySecond" datePattern="yyyyMMdd'T'HH:mm:ss" />
<contextName>${contextName} - ${bySecond}</contextName>
<!-- 表示打印到控制台 -->
<appender name="limeFlogger" class="ch.qos.logback.core.ConsoleAppender">
<filter class="ch.qos.logback.core.filter.EvaluatorFilter">
<evaluator>
<matcher>
<!--用于定义matcher的名字,求值表达式中使用这个名字来引用matche-->
<Name>odd</Name>
<!--用于配置匹配条件-->
<regex>statement [13]</regex>
</matcher>
<!--用于配置求值条件-->
<expression>odd.matches(formattedMessage)</expression>
</evaluator>
<OnMatch>ACCEPT </OnMatch>
<OnMismatch>DENY</OnMismatch>
</filter>
<!-- encoder 默认配置为PatternLayoutEncoder -->
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
<target>System.err</target>
</appender>
<logger name="fei.zhou.logbacklearn.business.demo.Demo4" level="debug" additivity="true">
<appender-ref ref="limeFlogger" />
</logger>
<root />
</configuration>
