package com.fdkk.sxz.logging; import ch.qos.logback.classic.spi.ILoggingEvent; import ch.qos.logback.core.ConsoleAppender; import cn.hutool.core.util.StrUtil; import com.fdkk.sxz.util.DateUtil; import org.slf4j.MDC; import org.springframework.stereotype.Component; @Component public class LogAppender extends ConsoleAppender { @Override protected void append(ILoggingEvent eventObject) { MDC.get("TRACE_ID"); String TRACE_ID = ""; if (eventObject.getMDCPropertyMap() != null) { TRACE_ID = eventObject.getMDCPropertyMap().get("TRACE_ID"); } String message = eventObject.getMessage(); if (eventObject.getMessage().contains("::")) { message = eventObject.getMessage().split("::")[0]; } Log log = new Log(eventObject.getLoggerName(), eventObject.getFormattedMessage(), eventObject.getThreadName(), DateUtil.convert2CST(eventObject.getTimeStamp()), eventObject.getLevel().toString(), TRACE_ID, message); //添加到阻塞队列 if (!log.getMessage().contains("/logging/") && !log.getMessage().contains("/webjars/") && !log.getLoggerName().contains("LogMapper") && !log.getMessage().contains("error") && !log.getMessage().contains("precache") && !log.getMessage().contains("robots.txt") && !log.getMessage().contains("swagger") && !log.getMessage().contains("favicon") && !log.getMessage().contains("worker.js") && !log.getLoggerName().contains("HikariDataSource") && !log.getLoggerName().contains("IModelHandelStepMapper") && !log.getLoggerName().contains("tb_model_handel_step") && StrUtil.isNotEmpty(TRACE_ID)) { DataContext.tempLogQueue.add(log); } } }