2009-11-04 115 views
2

我正在使用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> 


一些类我期望能获得:

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

我得到错误的源代码位置:

[09年11月4日17:03:57:160 IST] 00000012 SystemOutØ04-11 17:03:57.144 | | [server.startup:0] | ?:init:? | DEBUG |测试调试

在其他一些类中,我得到正确的源位置。

我在做什么错?

回答

1

也许你的一些课程是在没有行信息的情况下编译的?如果您将“优化”选项-O添加到javac,它将去除行号。

0

您是在初始化那些问题类中的记录器还是继承它?例如,你是否有与此类似的行:

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