解决问题
灵活的自定义日志打印
比如:我想屏蔽springboot的定时任务的日志输出
解决方法
自定义filter
- 编写Filter ```powershell package com.haier.sql2api.schedule;
import ch.qos.logback.classic.spi.ILoggingEvent; import ch.qos.logback.core.filter.Filter; import ch.qos.logback.core.spi.FilterReply;
/**
- Logback的过滤器,过滤日志打印 *
@author 20016565 */ public class ScheduleLogBackFilter extends Filter
{ private final static String ThreadName = “scheduling”; /**
- 定时任务的日志打印很烦,这里写个log过滤器去掉打印
- 定时任务scheduling线程的日志不打印 *
- @param event 日志时间
- @return
*/
@Override
public FilterReply decide(ILoggingEvent event) {
if (event.getThreadName().contains(ThreadName)) {
} //接受 return FilterReply.ACCEPT; }//丢弃
return FilterReply.DENY;
}
2. 配置文件logback-spring.xml中设置Filter
`<filter class="com.haier.sql2api.schedule.ScheduleLogBackFilter"></filter>`<br />如下配置:
```powershell
<!--Appender:标准输出,打印到控制台-->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!--自定义日志过滤器-->
<filter class="com.haier.sql2api.schedule.ScheduleLogBackFilter"></filter>
<encoder>
<!--格式化输出:%d表示日期,%-5level表示级别从左显示5个字符宽度,%thread表示线程名,%msg表示日志消息,%n是换行符-->
<!--<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread] %logger{50} - %msg%n</pattern>-->
<!--控制台高亮现实-->
<pattern>%yellow(%date{yyyy-MM-dd HH:mm:ss}) %highlight(%-5level) %yellow(%thread) %green(%logger:%line) %msg%n</pattern>
</encoder>
</appender>