1. controller 中使用

  1. @RestController
  2. @RequestMapping("/question")
  3. @Slf4j
  4. public class QuestionController {
  5. private final static String LOGGER = "recommendFeedBackLog";
  6. /**
  7. * 推荐试题反馈使用的日志
  8. */
  9. private final static Logger FEEDBACKLOG = LoggerFactory.getLogger(LOGGER);
  10. }

2. 增加日志过滤器

  1. public class RecommendLogFilter extends Filter<ILoggingEvent> {
  2. @Override
  3. public FilterReply decide(ILoggingEvent event) {
  4. if (event.getLoggerName() != null && (event.getLoggerName().equals("recommendFeedBackLog"))) {
  5. return FilterReply.ACCEPT;
  6. }
  7. return FilterReply.DENY;
  8. }
  9. }
  1. logkback.xml 中配置
  1. <appender name="recommendFeedBackLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
  2. <filter class="com.tal.storage.core.log.RecommendLogFilter"/>
  3. <file>${catalina.base}/logs/cloud-storage/recommend/cloud-storage_recommend_log.log</file>
  4. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  5. <fileNamePattern>${catalina.base}/logs/cloud-storage/recommend/cloud-storage_recommend_log.%d{yyyy-MM-dd}.log</fileNamePattern>
  6. <maxHistory>100</maxHistory>
  7. </rollingPolicy>
  8. <encoder>
  9. <pattern>%msg%n</pattern>
  10. </encoder>
  11. </appender>

也可以用这种方式:

  1. /**
  2. * 定义logger,用于收集发送失败MQ消息
  3. */
  4. public class SendMessageFailFilter extends AbstractMatcherFilter<ILoggingEvent> {
  5. private String loggerName;
  6. private Level level;
  7. /**
  8. * DENY 立即删除日志事件而不咨询剩余的过滤器
  9. * NEUTRAL 查询列表中的下一个过滤器,如果没有其他过滤器可供参考,则会正常处理日志记录事件
  10. * ACCEPT 立即处理日志事件,跳过其余过滤器的调用
  11. *
  12. * @param event
  13. * @return
  14. */
  15. @Override
  16. public FilterReply decide(ILoggingEvent event) {
  17. if (event.getLoggerName().contains(loggerName) && level == event.getLevel()) {
  18. return onMatch;
  19. }
  20. return onMismatch;
  21. }
  22. public void setLoggerName(String loggerName) {
  23. this.loggerName = loggerName;
  24. }
  25. public void setLevel(Level level) {
  26. this.level = level;
  27. }
  28. }
  1. <!-- 自定义日志输出器 -->
  2. <appender name="tableData" class="ch.qos.logback.core.rolling.RollingFileAppender">
  3. <filter class="com.tal.log.filter.SendMessageFailFilter">
  4. <loggerName>table-data</loggerName>
  5. <level>INFO</level>
  6. <onMatch>ACCEPT</onMatch>
  7. <onMismatch>DENY</onMismatch>
  8. </filter>
  9. <file>${catalina.base}/logs/database-data-collection/table-data.log</file>
  10. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  11. <fileNamePattern>
  12. ${catalina.base}/logs/database-data-collection/table-data.%d{yyyy-MM-dd}.log
  13. </fileNamePattern>
  14. <maxHistory>30</maxHistory>
  15. </rollingPolicy>
  16. <encoder>
  17. <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %logger{50}[%M][%L] - %msg%n</pattern>
  18. </encoder>
  19. </appender>