我使用ant build来构建.jar文件。当我执行jar时,日志中缺少行号和java文件名。
[ERROR] [2013-05-07 07:26:26,900][abc.def.per#?] -common.exception.FatalException
at abc.def.per.Ext(Unknown Source)
我使用的log4j patternlayout是
log4j.appender.R.layout.ConversionPattern=[%-5p] [%d{ISO8601}][%c#%L] - %m%n
如果我执行之前[大约3年前]建立的旧jar,我可以看到正确的日志。 所以我认为patternlayout没有问题。我希望问题出在构建中。 请救救我。
答案 0 :(得分:5)
您正在使用没有调试信息的类。您需要使用以下命令之一编译您的类。
javac -g
javac -g:lines,source
默认情况下会添加调试信息,因此请在构建脚本中查找已禁用的调试或-g:none
。
答案 1 :(得分:0)
请参考以下链接:logging.apache.org/log4j/1.2/apidocs/org/apache/log4j / ...对我来说,似乎你需要使用%C或%F(大写)来显示文件名。