开发者

Log4J not providing correct source info

I am using log4j for traces.

I am using the following pattern for my trace:

<la开发者_C百科yout 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>   

In some classes I expect to get:

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

I get wrong source code location:

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

In some other classes I get correct source location.

What am I doing wrong?


Perhaps some of your classes are compiled wíthout line information? If you add the "optimization" option -O to javac it will strip line numbers.


Are you initializing your logger in those problem classes or inheriting it? For example, do you have a line similar to this one:

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜