使用log4j2关闭debug日志

 更新时间:2021年12月24日 11:48:43   作者:凤鸣86  
这篇文章主要介绍了使用log4j2关闭debug日志方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

log4j2关闭debug日志

最近项目引进入一个jar包,启动之之后debug日志就停不下来了,为了关闭这个日志花了半个下午。总结以下处理方式,以供大家参考:

1.如果引入了logback的jar包

排除引用(我的项目里没有引用)

<exclusions>
 <exclusion>
  <groupId>ch.qos.logback</groupId>
  <artifactId>logback-classic</artifactId>
 </exclusion>
 <exclusion>
  <groupId>ch.qos.logback</groupId>
  <artifactId>logback-core</artifactId>
 </exclusion>
</exclusions>

2.调整log4j2的日志打印级别

log4j2.xml(对于我的项目没有起作用)

<configuration status="info" monitorInterval="600" >

3.指定加载文件web.xml

添加指定日志文件 (我的项目无效)

  <context-param>
    <param-name>log4jConfigLocation</param-name>
    <param-value>WEB-INF/classes/log4j2.xml</param-value>
  </context-param>
  <listener>
    <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
  </listener>

4.添加log4j.properties

对于我的项目有效

log4j.rootLogger=info,stdout

备注:因为我的项目里由于第三方jar包引入了slf4j-log4j12和log4j2冲突,所以exclude掉slf4j-log4j12 jar包就是可以的

Log4J和slf4j的debug日志问题

很多人知道

在使用slf4j的过程中通常会引入两个jar包

大概如下:

<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api -->
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.21</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-simple -->
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>1.7.21</version>
</dependency>

当使用最终的日志实现

如Log4j时,又会引入log4j相关的jar包,如下:

<!-- https://mvnrepository.com/artifact/log4j/log4j -->
<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-log4j12 -->
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.7.21</version>
</dependency>

这样就可以在Java应用程序(Java Web服务和Java程序)中,输出由slf4j编写的日志。

但在使用过程中发现,在执行测试用例(加载Spring或未加载Spring)的时候,不管怎么配置log4j.properties文件,都会出现部分debug日志输出不了的情况,具体就是自己写的那部分的debug日志不会输出,而如Spring或MyBatis等框架的debug日志就可以输出。

后面根据slf4j的警告日志,说是有多个日志实现,从而不确定具体选哪一个具体日志实现。经过进一步的调试,删除slf4j-simple的依赖后,所有的debug日志都可以如期的输出。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • java设计模式-装饰者模式详解

    java设计模式-装饰者模式详解

    这篇文章主要介绍了Java设计模式之装饰者模式详解和代码实例,Decorator模式(别名Wrapper):动态将职责附加到对象上,若要扩展功能,装饰者提供了比继承更具弹性的代替方案,需要的朋友可以参考下
    2021-07-07
  • Java错误问题:找不到或无法加载主类的解决

    Java错误问题:找不到或无法加载主类的解决

    这篇文章主要介绍了Java错误问题:找不到或无法加载主类的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • SpringBoot之LogBack配置详解

    SpringBoot之LogBack配置详解

    这篇文章主要介绍了SpringBoot之LogBack配置详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-02-02
  • Java8新特性之线程安全日期类

    Java8新特性之线程安全日期类

    这篇文章主要介绍了Java8新特性之线程安全日期类,文中有非常详细的代码示例,对正在学习java的小伙伴们有一定的帮助,需要的朋友可以参考下
    2021-04-04
  • java final 和instanceof 关键字的区别

    java final 和instanceof 关键字的区别

    这篇文章介绍了java final 和instanceof 关键字的区别,有需要的朋友可以参考一下
    2013-09-09
  • Spring中的循环依赖问题

    Spring中的循环依赖问题

    在Spring框架中,循环依赖是指两个或多个Bean相互依赖,这导致在Bean的创建过程中出现依赖死锁,为了解决这一问题,Spring引入了三级缓存机制,包括singletonObjects、earlySingletonObjects和singletonFactories
    2024-09-09
  • Mybatis内置参数之_parameter和_databaseId的使用

    Mybatis内置参数之_parameter和_databaseId的使用

    这篇文章主要介绍了Mybatis内置参数之_parameter和_databaseId的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • Springboot结合Mybatis-Plus实现业务撤销回滚功能

    Springboot结合Mybatis-Plus实现业务撤销回滚功能

    本文介绍了如何在Springboot结合Mybatis-Plus实现业务撤销回滚功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-12-12
  • 如何在IDEA中对 hashCode()和 equals() 利用快捷键快速进行方法重写

    如何在IDEA中对 hashCode()和 equals() 利用快捷键快速进行方法重写

    这篇文章主要介绍了如何在IDEA中对 hashCode()和 equals() 利用快捷键快速进行方法重写,需要的朋友可以参考下
    2020-08-08
  • 解决创建springboot后启动报错:Failed to bind properties under‘spring.datasource‘

    解决创建springboot后启动报错:Failed to bind properties under‘spri

    在Spring Boot项目中,application.properties和application.yml是用于配置参数的两种文件格式,properties格式简洁但不支持层次结构,而yml格式支持层次性,可读性更好,在yml文件中,要注意细节,比如冒号后面需要空格
    2024-10-10

最新评论