H__D  

  本例想实现对类或者包中的日志,自定义级别输出

方法一

  1、自定义日志级别方式如下:

    代码文件:Logger monitorLogger = LoggerFactory.getLogger("monitor");  //在声明实例时创建自定义级别标签,monitor就是自定义的标签。

  2、输出日志采用这样的方式:

    代码文件:monitorLogger.info("======info");

  3、配置文件:声明Logger的处理节点

 1 <!-- 时间滚动输出 level为 monitor 日志 -->
 2 <appender name="file—monitor" class="ch.qos.logback.core.rolling.RollingFileAppender">
 3     <filter class="ch.qos.logback.classic.filter.LevelFilter">
 4         <level>INFO</level>
 5         <onMatch>ACCEPT</onMatch>
 6         <onMismatch>DENY</onMismatch>
 7     </filter>
 8     <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
 9         <FileNamePattern>${Log_Home}/info/monitor.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
10         <MaxHistory>30</MaxHistory>
11     </rollingPolicy>
12     <encoder>
13         <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{50} - %msg%n</pattern>
14     </encoder>
15 </appender>
16 
17 <!-- name="monitor":设置日志名为monitor的日志 -->
18 <!-- additivity="false":只在当前appender中打印 -->
19 <logger name="monitor" additivity="false">
20     
21     <!-- 添加appender -->
22     <appender-ref ref="file—monitor"/>  
23 </logger> 

 

方法二

  1、自定义日志级别方式如下:

    代码文件:Logger monitorLogger = LoggerFactory.getLogger("monitor");  //在声明实例时创建自定义级别标签,monitor就是自定义的标签。

  2、输出日志采用这样的方式:

    代码文件:monitorLogger.info("======info");

  3、自定义过滤器SampleFilter.java

 1 package com.test;
 2 
 3 import ch.qos.logback.classic.spi.ILoggingEvent;
 4 import ch.qos.logback.core.filter.Filter;
 5 import ch.qos.logback.core.spi.FilterReply;
 6 
 7 /**
 8  * 日志过滤器
 9  * @author H__D
10  * @date 2019-07-12 01:22:26
11  *
12  */
13 public class SampleFilter extends Filter<ILoggingEvent> {
14 
15     @Override
16     public FilterReply decide(ILoggingEvent event) {
17         
18         // 判断日志名是否包含monitor
19         if (event.getLoggerName().contains("monitor")) {
20             return FilterReply.ACCEPT;
21         } 
22         return FilterReply.DENY;
23 
24     }
25 }

  4、在配置文件appender中使用过滤器

 1 <!-- 时间滚动输出 level为 monitor 日志 -->
 2 <appender name="file—monitor" class="ch.qos.logback.core.rolling.RollingFileAppender">
 3     <!-- 使用自定义过滤器 -->
 4     <filter class="com.test.SampleFilter">/filter>
 5     <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
 6         <FileNamePattern>${Log_Home}/info/monitor.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
 7         <MaxHistory>30</MaxHistory>
 8     </rollingPolicy>
 9     <encoder>
10         <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{50} - %msg%n</pattern>
11     </encoder>
12 </appender>
13 
14 <!-- name="monitor":设置日志名为monitor的日志 -->
15 <!-- additivity="false":只在当前appender中打印 -->
16 <logger name="monitor" additivity="false">
17     
18     <!-- 添加appender -->
19     <appender-ref ref="file—monitor"/>  
20 </logger>  

 

  

posted on 2019-07-12 01:27  H__D  阅读(6755)  评论(0编辑  收藏  举报