打印归档(jar)日志来自logback

时间:2015-01-23 15:02:00

标签: java logback

我在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>

2 个答案:

答案 0 :(得分:1)

我建议检查Java进程的完整类路径,你可以简单地使用

jinfo [pid]

你会获得足够的输出,包括java.class.path所有的罐子以及它们的订单

对于大型应用服务器(WebSphere等)而言,这是一个相当普遍的问题,它有一些其他版本的库,它首先显示在类路径上,您可能不会期待

答案 1 :(得分:0)

使用stacktraces很容易。

使用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开始,默认情况下禁用打包数据。

来自James Strachan的文章(2008)

引自logback documentation here

图案布局

除此之外,您还可以customize使用pattern

  • %类
  • %文件
  • %线
  • %呼叫者