解决log4j2配置文件失效的问题

在项目运行中遇到日志输出格式异常,排查后发现是由于包冲突导致log4j2配置文件未被正确加载。通过在Tomcat VM参数中添加显示log4j相关信息的参数,找出冲突源为activemq-all-5.15.4.jar中的log4j.properties。解决方法包括弃用冲突包或删除其中的log4j.properties文件。采取措施后,日志输出恢复正常。
摘要由CSDN通过智能技术生成

今天运行项目的时候,查看控制台时突然发现日志的输出格式变了,但最近又没动过log4j2的配置文件,由此非常的困惑。
折腾到最后怀疑是加载了别的地方的配置文件或者因为某些原因使用了默认的配置属性(因为控制台里有输出日志,只是输出格式不是我们想要的那样,从而说明配置文件没起作用)。
后来在网上发现很多相类似的问题,其中大多数原因都是因为包冲突或包里含有额外的配置文件等造成的。
由此我也怀疑是最近新增加的activemq-all包而引发的问题。
于是在Tomcat的VM参数里添加-Dlog4j.debug参数来显示log4j的有关信息。

log4j: Trying to find [log4j.xml] using context classloader ParallelWebappClassLoader
  context: ROOT
  delegate: false
----------> Parent Classloader:
java.net.URLClassLoader@cac736f
.
log4j: Trying to find [log4j.xml] using ParallelWebappClassLoader
  context: ROOT
  delegate: false
----------> Parent Classloader:
java.net.URLClassLoader@cac736f
 class loader.
log4j: Trying to find [log4j.xml] using ClassLoader.getSystemResource().
log4j: Trying to find [log4j.properties] using context classloader ParallelWebappClassLoader
  context: ROOT
  delegate: false
----------> Parent Classloader:
java.net.URLClassLoader@cac736f
.
log4j: Using URL [jar:file:/D:/IdeaProjects/Demo3/target/Demo3/WEB-INF/lib/activemq-all-5.15.4.jar!/log4j.properties] for automatic log4j configuration.
log4j: Reading configuration from URL jar:file:/D:/IdeaProjects/Demo3/target/Demo3/WEB-INF/lib/activemq-all-5.15.4.jar!/log4j.properties
log4j: Parsing for [root] with value=[INFO, console].
log4j: Level token is [INFO].
log4j: Category root set to INFO
log4j: Parsing appender named "console".
log4j: Parsing layout options for "console".
log4j: Setting property [conversionPattern] to [%5p | %m%n].
log4j: End of parsing for "console".
log4j: Setting property [threshold] to [INFO].
log4j: Parsed "console" options.
log4j: Parsing for [org.apache.activemq.spring] with value=[WARN].
log4j: Level token is [WARN].
log4j: Category org.apache.activemq.spring set to WARN
log4j: Handling log4j.additivity.org.apache.activemq.spring=[null]
log4j: Parsing for [org.springframework] with value=[WARN].
log4j: Level token is [WARN].
log4j: Category org.springframework set to WARN
log4j: Handling log4j.additivity.org.springframework=[null]
log4j: Parsing for [org.eclipse.jetty] with value=[WARN].
log4j: Level token is [WARN].
log4j: Category org.eclipse.jetty set to WARN
log4j: Handling log4j.additivity.org.eclipse.jetty=[null]
log4j: Parsing for [org.apache.activemq.web.handler] with value=[WARN].
log4j: Level token is [WARN].
log4j: Category org.apache.activemq.web.handler set to WARN
log4j: Handling log4j.additivity.org.apache.activemq.web.handler=[null]
log4j: Parsing for [org.apache.camel] with value=[INFO].
log4j: Level token is [INFO].
log4j: Category org.apache.camel set to INFO
log4j: Handling log4j.additivity.org.apache.camel=[null]
log4j: Parsing for [org.apache.xbean] with value=[WARN].
log4j: Level token is [WARN].
log4j: Category org.apache.xbean set to WARN
log4j: Handling log4j.additivity.org.apache.xbean=[null]
log4j: Finished configuring.

看到这一行了没?
log4j: Reading configuration from URL jar:file:/D:/IdeaProjects/Demo3/target/Demo3/WEB-INF/lib/activemq-all-5.15.4.jar!/log4j.properties
果然是先加载了activemq-all-5.15.4.jar中的log4j.properties这个配置文件,自然而然的会忽略我们自己编写的log4j2.xml文件。
另外还有这部分的控制台输出:

SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/D:/IdeaProjects/Demo3/target/Demo3/WEB-INF/lib/activemq-all-5.15.4.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值