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

标签:logback,屏蔽,日志
0
投稿

猜你喜欢

  • 函数指针与指针函数的学习总结

    2023-07-07 13:13:50
  • java实现简单的猜数字小游戏

    2023-11-11 12:55:40
  • Android中FoldingLayout折叠布局的用法及实战全攻略

    2021-05-23 19:29:17
  • 关于C#转换二进制所引起的一些思考

    2021-06-02 18:31:22
  • 如何用C#实现SAGA分布式事务

    2022-11-29 20:34:49
  • 使用@符号让C#中的保留字做变量名的方法详解

    2022-06-07 20:22:48
  • Android实现网易新闻客户端侧滑菜单(1)

    2023-09-12 00:54:05
  • Java Email邮件发送简单实现介绍

    2023-10-07 01:05:11
  • Spring Boot启动过程完全解析(二)

    2022-06-17 14:40:59
  • Idea 搭建Spring源码环境的超详细教程

    2023-09-30 16:13:17
  • java内部类原理与用法详解

    2022-12-04 14:41:25
  • Java快速入门掌握类与对象及变量的使用

    2021-10-14 04:49:13
  • Java C++实现相同MD5加密算法的方式

    2023-10-12 12:26:02
  • C#探秘系列(一)——ToDictionary,ToLookup

    2023-04-19 09:16:15
  • Android实现从网络获取图片显示并保存到SD卡的方法

    2023-10-09 22:08:56
  • Android仿微信清理内存图表动画(解决surfaceView屏幕闪烁问题)demo实例详解

    2023-05-31 15:35:27
  • C#词法分析器之正则表达式的使用

    2023-06-21 13:10:58
  • spring cloud gateway如何获取请求的真实地址

    2023-11-28 20:20:12
  • Android动态修改应用图标与名称的方法实例

    2021-11-21 13:24:44
  • 详解JAVA流程控制语句

    2023-11-05 02:27:09
  • asp之家 软件编程 m.aspxhome.com