我正在使用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中查找了配置文件,并正确打印了类信息。因此,似乎从外部定义文件会产生问题。 但我不知道为什么。
答案 0 :(得分:0)
'%'字符也被rpm宏(及更多)和。使用 在阅读规范文件时,您的内容会被更改。
您需要转义(使用'%%'代替'%') 一些'%'字符将它们传递给rpmbuild解析器。