Logback日志输入到xxl-job日志中

前言

​ 在xxl-job的任务中,如果需要把日志输入到xxl-job的日志文件里,需要使用XxlJobHelper.log来记录日志,这种方式才能在任务执行详情里面看到对应的日志。而有时候 习惯用@Slf4j来记录日志,而通过slf4j打印的日志没办法在xxl-job管理后台看到对应的日志。所以需要一种方式能够把log记录的日志,同时输出到xxl-job

实现方式

  1. 借助logback的filter来实现,实现一个类继承Filter

    public class JxXxlJobLogFilter extends Filter<ILoggingEvent> {
        @Override
        public FilterReply decide(ILoggingEvent event) {
          	//判断是否是处于xxl-job上下文中(通过xxl-job调用发起的)
            if (XxlJobContext.getXxlJobContext() != null) {
              	//调用xxl-job记录日志的方法 不同版本的xxl-job记录日志的api不一样
                XxlJobHelper.log(event.getFormattedMessage());
            }
          	//放行
            return FilterReply.NEUTRAL;
        }
    }
    
  2. 在logback中加入相应的filter

    <filter class="com.jx.shop.config.JxXxlJobLogFilter"/>
    

你可能感兴趣的:(logback)