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

方法一

  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>

  

【Log】logback实现每个类和包自定义级别输出的更多相关文章

  1. 通过LOGBACK实现每个类、包或自定义级别

    项实现LOGBACK对每个包或者类或者通过自定义级别的方式实现自定义输出的日志进入制定的文件.查阅了很多资料,都没有找到行之有效的解决方案,直到看到了这篇文章http://www.360doc.com ...

  2. Logback自定义日志输出内容

    场景 一般情况下,日志打印的内容都是根据配置文件中配置的pattern格式指定好的.在我们调用logger.info(), logger.debug()等日志打印方法时,打印的内容格式与配置文件中的p ...

  3. Java基础总结--常用类以及包的访问权限

    -----Object---所有类的根类1.怎么得到的:通过对所有对象不断的向上抽取共性,具备所有对象的共性的东西2.常用的方法* equals(Object obj):比较两个对象的引用是否指向同一 ...

  4. 并发编程概述 委托(delegate) 事件(event) .net core 2.0 event bus 一个简单的基于内存事件总线实现 .net core 基于NPOI 的excel导出类,支持自定义导出哪些字段 基于Ace Admin 的菜单栏实现 第五节:SignalR大杂烩(与MVC融合、全局的几个配置、跨域的应用、C/S程序充当Client和Server)

    并发编程概述   前言 说实话,在我软件开发的头两年几乎不考虑并发编程,请求与响应把业务逻辑尽快完成一个星期的任务能两天完成绝不拖三天(剩下时间各种浪),根本不会考虑性能问题(能接受范围内).但随着工 ...

  5. Tomcat - 怎么控制某个类或者包下的日志打印级别

    问题与分析 Tomcat是使用自己的日志实现tomcat-juli.jar来打印日志信息的,日志会被打印到catalina.out里,除去你在项目里自己使用的日志框架外,由System.out,Sys ...

  6. [改善Java代码]使用package-info类为包服务

    建议50: 使用package-info类为包服务 Java中有一个特殊的类:package-info类,它是专门为本包服务的,为什么说它特殊呢?主要体现在3个方面: (1)它不能随便被创建 在一般的 ...

  7. 浅谈Perl的类、包、模块与面对对象编程

    http://blog.chinaunix.net/uid-27464093-id-3308003.html Perl面向对象 Perl面向对象学习例子实例代码教程 - 在我们了解perl的面向对象的 ...

  8. c#通过反射获取类上的自定义特性

    c#通过反射获取类上的自定义特性 本文转载:http://www.cnblogs.com/jeffwongishandsome/archive/2009/11/18/1602825.html 下面这个 ...

  9. Java基础7:关于Java类和包的那些事

    更多内容请关注微信公众号[Java技术江湖] 这是一位阿里 Java 工程师的技术小站,作者黄小斜,专注 Java 相关技术:SSM.SpringBoot.MySQL.分布式.中间件.集群.Linux ...

随机推荐

  1. Docker基础用法篇

    Docker基础用法篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.安装docker 1>.依赖的基础环境 64 bits CPU Linux Kerner 3.10+ ...

  2. mongodb 安装pymongo 驱动

    下载驱动包: https://pypi.org/project/pymongo/ 解压:  tar zxvf pymongo-3.8.0.tar.gz   安装:  python setup.py i ...

  3. 面试必备技能:HashMap哪些技术点会被经常问到?

    1.为什么用数组+链表? 数组是用来确定桶的位置,利用元素的key的hash值对数组长度取模得到. 链表是用来解决hash冲突问题,当出现hash值一样的情形,就在数组上的对应位置形成一条链表.ps: ...

  4. KVM网络

    默认KVM安装后,生成virbro和virbro-nic,VM通过NAT方式连接 新增桥接网络 1.首先创建网桥并绑定 brctl addbr br0 #增加网桥 brctl addif bro en ...

  5. Python idle中lxml 解析HTML时中文乱码解决

    例: <html><p>中文</p></html> 读取代码: 代码HTML需要进行decode('utf-8') 编译: p=etree.HTML(u ...

  6. Mybatis分页方法

    使用方法https://github.com/pagehelper/Mybatis-PageHelper/blob/master/wikis/zh/HowToUse.md 使用 Maven 在 pom ...

  7. 日期对象|Date构造函数|

    var date = new Date(); console.log(date); //Date {Wed Dec 10 2014 15:59:24 GMT+0800} date.getDay() d ...

  8. BZOJ 4197: [Noi2015]寿司晚宴 状压dp+质因数分解

    挺神的一道题 ~ 由于两个人选的数字不能有互质的情况,所以说对于一个质因子来说,如果 1 选了,则 2 不能选任何整除该质因子的数. 然后,我们发现对于 1 ~ 500 的数字来说,只可能有一个大于 ...

  9. 关于H5判定区域里面滑动到底部,加载更多的总结

    1.如何判定H5中滑动到底部,然后加载更多的功能实现. 思路:我们需要设定一个固定高度的盒子,然后我们利用scroll来监听滚动,当scrollTop(滚动的距离) + clientHeight(页面 ...

  10. 洛谷 P4822 [BJWC2012]冻结 题解

    P4822 [BJWC2012]冻结 题目描述 "我要成为魔法少女!" "那么,以灵魂为代价,你希望得到什么?" "我要将有关魔法和奇迹的一切,封印于 ...