使用logback屏蔽一些包的日志
作者:445231203 发布时间:2023-08-08 20:46:20
在logback.xml中加上该配置,包名如:com.xxx
<logger name="packageName" level="OFF"> </logger>
补充知识:logback,利用java包名对包内所有类定义输出形式
目的
将java package 中的所有类定义一个输出logger,定义它的级别,这样就不用每个类都配置。
测试
配置文件
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%d{MM/dd/yyyy HH:mm:ss} %-5level [%thread%X{sourceThread}]%logger{24} - %msg%n</pattern>
</encoder>
</appender>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>/var/log/admin-manage/log.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>/var/log/admin-manage/log.%d{yyyy-MM-dd}.log.gz</fileNamePattern>
<maxHistory>7</maxHistory>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%d{MM/dd/yyyy HH:mm:ss} %-5level ${version} [%thread]%logger{16} - %msg%n
</pattern>
</encoder>
</appender>
<logger name="test1" level="info"/>
<logger name="test2" level="info" additivity="false"/>
<logger name="test3" level="warn" additivity="false">
<appender-ref ref="STDOUT"/>
</logger>
<logger name="test4" level="warn" >
<appender-ref ref="STDOUT"/>
</logger>
<logger name="com.netease.haitao.LogbackTest" level="warn">
<appender-ref ref="STDOUT"/>
</logger>
<root level="DEBUG">
<appender-ref ref="STDOUT"/>
</root>
</configuration>
代码
package com.netease.haitao.LogbackTest;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* ${todo}
*
* @param: $$params$
* @return $returns$
* @date $date$ $time$
*/
public class LogBackTestOne {
private static final Logger logger = LoggerFactory.getLogger(LogBackTestOne.class);
public static void main(String[] arg) {
// print("test1");
// print("test2");
// print("test3");
// print("test4");
print("test4.test5");
}
public static void print(String name) {
//Logger logger = LoggerFactory.getLogger(name);
logger.debug("debug");
logger.info("info");
logger.warn("warn");
logger.error("error");
}
}
输出结果
05/03/2018 09:28:38 WARN [main]c.n.h.L.LogBackTestOne - warn
05/03/2018 09:28:38 WARN [main]c.n.h.L.LogBackTestOne - warn
05/03/2018 09:28:38 ERROR [main]c.n.h.L.LogBackTestOne - error
05/03/2018 09:28:38 ERROR [main]c.n.h.L.LogBackTestOne - error
大家可以注意到,这里只输出warn和error级别的信息,这是因为配置文件中“logger name=“com.netease.haitao.LogbackTest” level=“warn”” 中定义了日志级别,并且有root作为一个根级别的日志输出节点。
如果我们把name换成其他名字,修改为“logger name=“Test5” level=“warn””,我们看下结果:
05/03/2018 09:24:04 DEBUG [main]c.n.h.L.LogBackTestOne - debug
05/03/2018 09:24:04 INFO [main]c.n.h.L.LogBackTestOne - info
05/03/2018 09:24:04 WARN [main]c.n.h.L.LogBackTestOne - warn
05/03/2018 09:24:04 ERROR [main]c.n.h.L.LogBackTestOne - error
上述结果就是修改后的结果,从这里看出,所有的日志信息都从root这个父节点输出了,因为root的级别是debug,所有的日志信息都打印出来了,这样说明我们之前配置的java包的测试是成功的,有结果的。
如果项目是基于springboot框架的话,不需要额外引用相关依赖,直接配置logback.xml就可以直接用。
结论
上述测试证明:logger的name可以配置成java包名,这样可以对包内的所有java类都起作用。帮助简化配置。
来源:https://blog.csdn.net/fww445231202/article/details/100035942
猜你喜欢
- 概述日常工作中,我们经常会有发送 HTTP 网络请求的需求,概括下我们常见的发送 HTTP 请求的需求内容:可以发送基本的 GET/POST
- 这节主要完成一些基本的增删改查以及Service、Dao和Action的抽取。1. Service层的抽取  
- 前言不积跬步无以至千里,不积小流,无以成江海在公司一般来说,都只会接触一些CRUD的业务,很多时候可能你想设计很多的代码结构,但是时间不允许
- Servlet3.0的出现是servlet史上最大的变革,其中的许多新特性大大的简化了web应用的开发,为广大劳苦的程序员减轻了压力,提高了
- 最近正式入坑Flutter,首先从环境搭建开始,看了网上好多关于Windows环境搭建的资料,基本都是按官方文档写的,看完的感受是,还不如直
- 本文实例讲述了C#创建临时文件的方法。分享给大家供大家参考。具体分析如下:C#可以通过Path.GetTempFileName获得一个临时文
- 一、简介Android的消息机制主要是指Handler的运行机制,那么什么是Handler的运行机制那?通俗的来讲就是,使用Handler将
- 之前学习 Java 的时候,感觉最难做的一件事情就是配置 jdk 的环境。那叫一个困难啊,Path, JAVA_HOME, CLASSPAT
- 摘要:这个问题算是老生常谈了,我也是一段时间没弄过了,所以感觉有些忘了,就记录一下。一、后端通过shiro在session中存储数据://
- 图片的复制无非有两种方法,一种是图片直接上传到服务器,另外一种转换成二进制流的base64码目前限chrome浏览器使用首先以um-edit
- 本文实例为大家分享了C# GDI+实现时钟表盘的具体代码,供大家参考,具体内容如下一、设计如下图界面按键“打开时钟&am
- 前言Future的问题写多线程程序的时候,可以使用Future从一个异步线程中拿到结果,但是如果使用过程中会发现一些问题:如果想要对Futu
- 1、说明isInterrupted()可以判断当前线程是否被中断,仅仅是对interrupt()标识的一个判断,并不会影响标识发生任何改变(
- 一、interrupt的使用特点我们先看2个线程打断的示例首先是可打断的情况:@Testpublic void interruptedTes
- 错误处理到目前为止,我们都没怎么介绍onComplete()和onError()函数。这两个函数用来通知订阅者,被观察的对象将停止发送数据以
- 背景实际开发中,常常需要将比较复杂的 JSON 字符串转换为对应的 Java 对象。这里记录下解决方案。如下所示,是入侵事件检测得到的 JS
- Java BufferWriter写文件之后文件是空的或者数据不全在编程的过程中,读写文件是非常常见的操作,在这里我问介绍一下最近我遇到的集
- 前言在使用Java开发接口请求中,我们需要对请求进行进行统一返回值,这时候我们自己封装一个统一的Result返回类,下面就介绍下我用的这种的
- 本文实例讲述了C++语言实现线性表之链表实现方法。分享给大家供大家参考。具体分析如下:插入、删除结点的代码有点多,但这样提高了代码的可读性,
- [LeetCode] 5. Longest Palindromic Substring 最长回文子串Given a string