使用logback屏蔽一些包的日志

 更新时间:2020年12月03日 14:35:42   作者:445231203  
这篇文章主要介绍了使用logback屏蔽一些包的日志,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

在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类都起作用。帮助简化配置。

以上这篇使用logback屏蔽一些包的日志就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java开发Spark应用程序自定义PipeLineStage详解

    Java开发Spark应用程序自定义PipeLineStage详解

    这篇文章主要为大家介绍了Java开发Spark应用程序自定义PipeLineStage详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-02-02
  • Struts2学习笔记(3)-DMI动态调用方式

    Struts2学习笔记(3)-DMI动态调用方式

    本文主要介绍Struts2的DMI动态调用的两种方式,简单实用,希望能给大家做一个参考。
    2016-06-06
  • Spring 多线程下注入bean问题详解

    Spring 多线程下注入bean问题详解

    本篇文章主要介绍了Spring 多线程下注入bean问题详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • 基于spring如何实现事件驱动实例代码

    基于spring如何实现事件驱动实例代码

    这篇文章主要给大家介绍了关于基于spring如何实现事件驱动的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用spring具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-04-04
  • Java获取磁盘分区信息的示例详解

    Java获取磁盘分区信息的示例详解

    在日常开发、系统监控和资源管理中,磁盘分区信息是非常重要的数据,本文将基于 Java 语言实现磁盘分区信息的获取功能,感兴趣的可以了解下
    2025-03-03
  • java线程池中Worker线程执行流程原理解析

    java线程池中Worker线程执行流程原理解析

    这篇文章主要为大家介绍了java线程池中Worker线程执行流程原理解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • java获取版本号及字节码编译版本方法示例

    java获取版本号及字节码编译版本方法示例

    这篇文章主要给大家介绍了关于java获得版本号及字节码编译版本的相关资料,文中通过示例代码介绍的非常详细,对大家学习或使用java具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2017-10-10
  • java反射_改变private中的变量及方法的简单实例

    java反射_改变private中的变量及方法的简单实例

    下面小编就为大家带来一篇java反射_改变private中的变量及方法的简单实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06
  • java位运算加密示例

    java位运算加密示例

    通过位运算中的"^"异或运算符把字符串与一个指定的值进行异或运算,从而改变字符串每个字符的值,这样就可以得到一个加密后的字符串
    2014-02-02
  • SpringBoot动态定时功能实现方案详解

    SpringBoot动态定时功能实现方案详解

    在SpringBoot项目中简单使用定时任务,不过由于要借助cron表达式且都提前定义好放在配置文件里,不能在项目运行中动态修改任务执行时间,实在不太灵活。现在我们就来实现可以动态修改cron表达式的定时任务,感兴趣的可以了解一下
    2022-11-11

最新评论