解决问题

灵活的自定义日志打印
比如:我想屏蔽springboot的定时任务的日志输出

解决方法

自定义filter

  1. 编写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)) {
      1. //丢弃
      2. return FilterReply.DENY;
      } //接受 return FilterReply.ACCEPT; }

}

  1. 2. 配置文件logback-spring.xml中设置Filter
  2. `<filter class="com.haier.sql2api.schedule.ScheduleLogBackFilter"></filter>`<br />如下配置:
  3. ```powershell
  4. <!--Appender:标准输出,打印到控制台-->
  5. <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
  6. <!--自定义日志过滤器-->
  7. <filter class="com.haier.sql2api.schedule.ScheduleLogBackFilter"></filter>
  8. <encoder>
  9. <!--格式化输出:%d表示日期,%-5level表示级别从左显示5个字符宽度,%thread表示线程名,%msg表示日志消息,%n是换行符-->
  10. <!--<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread] %logger{50} - %msg%n</pattern>-->
  11. <!--控制台高亮现实-->
  12. <pattern>%yellow(%date{yyyy-MM-dd HH:mm:ss}) %highlight(%-5level) %yellow(%thread) %green(%logger:%line) %msg%n</pattern>
  13. </encoder>
  14. </appender>