使用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


猜你喜欢
- 先说明一下,项目代码已上传至github,不想看长篇大论的也可以先去下代码,对照代码,哪里不懂点哪里。代码在这https://github.
- Activity类处于android.app包中,继承体系如下:1.java.lang.Object2.android.content.Co
- 本文为大家分享了C#实现窗体全屏的具体代码,供大家参考,具体内容如下方法一:不过此方法有时候会出现莫名的bug//程序启动路径,与生成程序的
- 一、先上效果图借用某东App的效果,如下。折叠时的效果:展开时的效果:二、ChipGroup和ChipchipGroup和chip之前写过博
- 首先使用一个用户提交界面作为举例(文本框,密码框,选择,下拉表单等),效果如下<!DOCTYPE html PUBLIC "
- Spring Boot如何实现配置文件的自动加载和刷新?在使用Spring Boot开发应用程序时,配置文件是非常重要的组成部分。在不同的环
- 在程序中封装了一个List集合对象,然后需要把该集合中的实体插入到数据库中,由于项目使用了Spring+MyBatis的配置,所以打算使用M
- 水印种类及功能介绍 PDF水印分为两种:文本水印和图片水印。文本水印一般被用在商业领域,提醒读者该文档是受版权保护的,其他人不能抄
- public class User { public
- 首先引入jar包:<dependency> <groupId>com.alibaba</grou
- AES简介AES(The Advanced Encryption Standard)是美国国家标准与技术研究所用于加密电子数据的规范。它被预
- 为什么会有常量池的概念?不知道小伙伴们是否有思考过这个问题? 没有思考也无所谓,小编在这里类比一下,大家就会清晰了。什么是池? 我们听的最多
- 1.sonarQube的简介SonarQube是一款自动化代码审查工具,用于检测代码中的错误、漏洞和代码异味。它可以与你现有的工作流集成,以
- 前言 ChatGPT已经组件放开了,现在都可以基于它写插件了。但是说实话我还真没想到可以用它干嘛,也许
- 发展历史Gradle 的依赖管理是一个从开始接触 Android 开发就一直伴随着我们的问题(作者是Andro
- 网上C#导出Excel的方法有很多。但用来用去感觉不够自动化。于是花了点时间,利用特性做了个比较通用的导出方法。只需要根据实体类,自动导出想
- 01-前言:什么是循环依赖?首先,我们先明确下依赖的定义。 如果一个 Bean bar 的属性,引用了容器中的另外一个 Bean foo,那
- 本文实例为大家分享了java实现猜字母游戏的具体代码,供大家参考,具体内容如下案例需求:StepOne:系统随机生成一组随机的字符数组(不重
- 本文实例为大家分享了Android实现EventBus登录界面与传值的具体代码,供大家参考,具体内容如下展示效果添加EventBus导入依赖
- Spring Boot如何实现分布式系统中的服务发现和注册?随着互联网的快速发展,越来越多的企业开始将自己的业务迁移到分布式系统中。在这种情