1、實作效果:項目的整體的日志列印級别為ERROR,但在某個包下或某個類想列印INFO級别的日志。
2、配置:
FILE是ERROR級别日志列印;
SPECIAL 是INFO級别日志列印;
FILE與SPECIAL唯一不同是日志儲存路徑不同,其它政策相同;
通過 logger标簽指定包路徑或類路徑并引用SPECIAL;
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<contextName>test</contextName>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${catalina.home}/logs/test/test.%d.%i.log</fileNamePattern>
<maxHistory>30</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>10MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<pattern>%d %p (%file:%line\)- %m%n -[%X{X-B3-TraceId:-},%X{X-B3-SpanId:-}]</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<appender name="SPECIAL" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${catalina.home}/logs/test/special/special.%d.%i.log</fileNamePattern>
<maxHistory>30</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>10MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<pattern>%d %p (%file:%line\)- %m%n -[%X{X-B3-TraceId:-},%X{X-B3-SpanId:-}]</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d %p (%file:%line\)- %m%n </pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<!--列印SQL-->
<logger name="daoLog" level="ERROR" />
<!-- 記錄special記錄檔 -->
<logger name="aaa.bbb.ccc.DemoService" level="INFO" >
<appender-ref ref="SPECIAL"/>
</logger>
<root level="error">
<appender-ref ref="FILE"/>
<appender-ref ref="STDOUT"/>
</root>
</configuration>