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

方法一

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

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

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

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

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

 <!-- 时间滚动输出 level为 monitor 日志 -->
<appender name="file—monitor" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>${Log_Home}/info/monitor.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{50} - %msg%n</pattern>
</encoder>
</appender> <!-- name="monitor":设置日志名为monitor的日志 -->
<!-- additivity="false":只在当前appender中打印 -->
<logger name="monitor" additivity="false"> <!-- 添加appender -->
<appender-ref ref="file—monitor"/>
</logger>

方法二

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

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

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

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

  3、自定义过滤器SampleFilter.java

 package com.test;

 import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.core.filter.Filter;
import ch.qos.logback.core.spi.FilterReply; /**
* 日志过滤器
* @author H__D
* @date 2019-07-12 01:22:26
*
*/
public class SampleFilter extends Filter<ILoggingEvent> { @Override
public FilterReply decide(ILoggingEvent event) { // 判断日志名是否包含monitor
if (event.getLoggerName().contains("monitor")) {
return FilterReply.ACCEPT;
}
return FilterReply.DENY; }
}

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

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

  

最新文章

  1. 2016年中国微信小程序专题研究报告
  2. cocos基础教程(11)事件分发机制
  3. Linux重复执行上条命令
  4. C#项目代码规范
  5. Win7 环境下虚拟机内 Samba 服务器的安装、配置以及与主机的通信实现
  6. 在ASP.NET Core中构建路由的5种方法
  7. 二、Snapman多人协作电子表格之——软件下载安装与配置
  8. sqlserver 迁移
  9. java----面对对象
  10. 『PyTorch』第五弹_深入理解Tensor对象_中下:数学计算以及numpy比较_&amp;_广播原理简介
  11. 公司最近把开发人员的系统全部改为windows了
  12. JMeter出现“the target server failed to respond“的解决办法
  13. Kaldi 安装
  14. 研究php单例模式实现数据库类
  15. 洛谷P4517 [JSOI2018]防御网络(dp)
  16. 开发必备知识点--django项目启动时,url加载之前,执行某个.py文件
  17. PHP性能之语言性能优化说明
  18. PostgreSQL正则及模糊查询优化
  19. CentOS6.5-DHCP配置
  20. JAVA Eclipse ActivityManager Warning Activity not started, its current task has been brought to the front怎么办

热门文章

  1. JAVA设计模式之工厂模式—Factory Pattern
  2. 如何查看已购买的office密钥
  3. Unity进阶:行为树 01
  4. python测试开发django-58.MySQL server has gone away错误的解决办法
  5. 前端性能----页面渲染(DOM)
  6. 当调用对象中不存的方法、属性时,__getattr__的应用场景
  7. NOIP 2018 考前须知
  8. LeetCode 1143. Longest Common Subsequence
  9. Redis的移库操作
  10. 我的Android前生今世之缘-学习经验-安卓入门教程(六)