rpmbuild剥离log4j的调试信息?

时间:2014-12-09 13:43:02

标签: java log4j rpmbuild

我正在使用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 prop时,log4j在jar中查找了配置文件,并正确打印了类信息。因此,似乎从外部定义文件会产生问题。 但我不知道为什么。

1 个答案:

答案 0 :(得分:0)

'%'字符也被rpm宏(及更多)和。使用 在阅读规范文件时,您的内容会被更改。

您需要转义(使用'%%'代替'%') 一些'%'字符将它们传递给rpmbuild解析器。