【问题标题】:rpmbuild stripping out debug info for log4j?rpmbuild 剥离 log4j 的调试信息?
【发布时间】: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 中查找配置文件,并正确打印类信息。因此,似乎在外部定义文件会产生问题。 但我不知道为什么。

【问题讨论】:

    标签: java log4j rpmbuild


    【解决方案1】:

    “%”字符也被 rpm 宏(以及更多)使用,并且 在阅读规范文件时,您的内容正在被更改。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-12-27
      • 2013-11-03
      • 2016-09-01
      • 1970-01-01
      • 2016-12-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多