前言
在xxl-job的任务中,如果需要把日志输入到xxl-job的日志文件里,需要使用XxlJobHelper.log来记录日志,这种方式才能在任务执行详情里面看到对应的日志。而有时候 习惯用@Slf4j来记录日志,而通过slf4j打印的日志没办法在xxl-job管理后台看到对应的日志。所以需要一种方式能够把log记录的日志,同时输出到xxl-job
实现方式
-
借助logback的filter来实现,实现一个类继承Filter
public class JxXxlJobLogFilter extends Filter<ILoggingEvent> {@Overridepublic FilterReply decide(ILoggingEvent event) {//判断是否是处于xxl-job上下文中(通过xxl-job调用发起的)if (XxlJobContext.getXxlJobContext() != null) {//调用xxl-job记录日志的方法 不同版本的xxl-job记录日志的api不一样XxlJobHelper.log(event.getFormattedMessage());}//放行return FilterReply.NEUTRAL;} }
-
在logback中加入相应的filter
<filter class="com.jx.shop.config.JxXxlJobLogFilter"/>