Log4J没有提供正确的源信息

时间:2009-11-04 15:36:46

标签: logging log4j

我正在使用log4j进行跟踪。

我使用以下模式进行跟踪:

<layout class="org.apache.log4j.PatternLayout">
  <param name="ConversionPattern" value="%d{dd-MM HH:mm:ss.SSS} | %X{sid} | [%t] | %F:%M:%L | %-5p | %m%n"/>
</layout>   


一些类中,我希望得到:

[11/4/09 17:03:57:160 IST] 00000012 SystemOut O 04-11 17:03:57.144 | | [server.startup:0] | MainServlet.java:init:79 |调试|测试调试

我的源代码位置错误:

[11/4/09 17:03:57:160 IST] 00000012 SystemOut O 04-11 17:03:57.144 | | [server.startup:0] | ?:init:? |调试|测试调试

在其他一些课程中,我获得了正确的源位置。

我做错了什么?

2 个答案:

答案 0 :(得分:1)

也许你的一些课程是根据行信息编译的?如果将“优化”选项-O添加到javac,它将删除行号。

答案 1 :(得分:0)

您是在初始化这些问题类中的记录器还是继承它?例如,你有一条类似于这一行:

protected final Log logger = LogFactory.getLog(getClass());