我在Tomcat服务器和Websphere服务器上的类实现之间存在一些不确定性。在logback中是否有一种方法可以在每个日志中显示jar和版本?所以日志看起来像这样:
DEBUG | 2015-01-22 16:13:49.252 [Default Executor-thread-7] ApplicationName org.apache.jcp.xml.dsig.internal.dom.DOMSignedInfo - Canonicalized SignedInfo: [wss4j.jar 1.6.17]
我目前的模式是:
<pattern>%-5level | %date{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %contextName %logger - %message%n</pattern>
我的POM:
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>0.9.30</version>
<type>jar</type>
<scope>runtime</scope>
</dependency>
答案 0 :(得分:1)
我建议检查Java进程的完整类路径,你可以简单地使用
jinfo [pid]
你会获得足够的输出,包括java.class.path
所有的罐子以及它们的订单
对于大型应用服务器(WebSphere等)而言,这是一个相当普遍的问题,它有一些其他版本的库,它首先显示在类路径上,您可能不会期待
答案 1 :(得分:0)
使用Logback显示每行堆栈跟踪的jar文件和版本:
您只需添加packagingData="true"
作为配置标记的属性。
示例:
<configuration packagingData="true">
...
</configuration>
然后你会有类似的东西:
在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1628) 〜[弹簧豆-4.3.10.RELEASE.jar:4.3.10.RELEASE]
请参阅那里的文档:Enabling packaging data in stack traces 注意:从版本1.1.4开始,默认情况下禁用打包数据。
除此之外,您还可以customize使用pattern
: