1. controller 中使用
@RestController@RequestMapping("/question")@Slf4jpublic class QuestionController {private final static String LOGGER = "recommendFeedBackLog";/*** 推荐试题反馈使用的日志*/private final static Logger FEEDBACKLOG = LoggerFactory.getLogger(LOGGER);}
2. 增加日志过滤器
public class RecommendLogFilter extends Filter<ILoggingEvent> {@Overridepublic FilterReply decide(ILoggingEvent event) {if (event.getLoggerName() != null && (event.getLoggerName().equals("recommendFeedBackLog"))) {return FilterReply.ACCEPT;}return FilterReply.DENY;}}
- 在
logkback.xml中配置
<appender name="recommendFeedBackLog" class="ch.qos.logback.core.rolling.RollingFileAppender"><filter class="com.tal.storage.core.log.RecommendLogFilter"/><file>${catalina.base}/logs/cloud-storage/recommend/cloud-storage_recommend_log.log</file><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>${catalina.base}/logs/cloud-storage/recommend/cloud-storage_recommend_log.%d{yyyy-MM-dd}.log</fileNamePattern><maxHistory>100</maxHistory></rollingPolicy><encoder><pattern>%msg%n</pattern></encoder></appender>
也可以用这种方式:
/*** 定义logger,用于收集发送失败MQ消息*/public class SendMessageFailFilter extends AbstractMatcherFilter<ILoggingEvent> {private String loggerName;private Level level;/*** DENY 立即删除日志事件而不咨询剩余的过滤器* NEUTRAL 查询列表中的下一个过滤器,如果没有其他过滤器可供参考,则会正常处理日志记录事件* ACCEPT 立即处理日志事件,跳过其余过滤器的调用** @param event* @return*/@Overridepublic FilterReply decide(ILoggingEvent event) {if (event.getLoggerName().contains(loggerName) && level == event.getLevel()) {return onMatch;}return onMismatch;}public void setLoggerName(String loggerName) {this.loggerName = loggerName;}public void setLevel(Level level) {this.level = level;}}
<!-- 自定义日志输出器 --><appender name="tableData" class="ch.qos.logback.core.rolling.RollingFileAppender"><filter class="com.tal.log.filter.SendMessageFailFilter"><loggerName>table-data</loggerName><level>INFO</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter><file>${catalina.base}/logs/database-data-collection/table-data.log</file><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>${catalina.base}/logs/database-data-collection/table-data.%d{yyyy-MM-dd}.log</fileNamePattern><maxHistory>30</maxHistory></rollingPolicy><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %logger{50}[%M][%L] - %msg%n</pattern></encoder></appender>
