【发布时间】:2015-02-07 10:18:15
【问题描述】:
我正在用 Spring 编写一个 Java 独立应用程序。我使用 log4j 进行日志记录。
我使用以下转换模式:
<param name="ConversionPattern" value="%d{ISO8601}; %-5p - %C.%M(%L) - %m%n"/>
这在我的本地 PC 上运行良好。但是当它构建为 RPM(使用 rpmbuild)并部署在服务器上时,类名、方法名和行号显示为 ?.?(?)
似乎log4j没有显示类名、方法名和行号所需的调试信息。
我尝试添加各种版本:
%debug_package %{nil}
%define debug_package %{nil}
%define __strip /bin/true
但没有解决它。
帮助?
更新:这似乎是因为我将 jar 运行为: java -Dlog4j.configuration=file:log4j.xml -jar my.jar
当我删除 log4j.configuration 属性时,log4j 会在 jar 中查找配置文件,并正确打印类信息。因此,似乎在外部定义文件会产生问题。 但我不知道为什么。
【问题讨论】: