我有一个非常奇怪的问题。当我记录堆栈跟踪时,它们似乎起源于我调用记录器的行,而不是发生错误的行。在追踪错误方面,这会导致一些严重的浪费时间。
使用tomcat6,openjdk 6和log4j。
有什么想法?提前感谢您提供任何帮助。
以下是示例。代码,第137-142行:
try {
req.getContentType().trim();
} catch (Exception e) {
log.error("DEBUG: " + e.getLocalizedMessage(), e.fillInStackTrace());
e.printStackTrace();
}
日志:
2012-01-19 10:13:25,393 [http-8080-1] ERROR com.myservlet.servlet.Servlet2 - DEBUG: null
java.lang.NullPointerException
at com.myservlet.servlet.Servlet2.doPost(Servlet2.java:140)
at com.myservlet.servlet.Servlet2.doGet(Servlet2.java:292)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) ...
答案 0 :(得分:4)
不要填写堆栈跟踪内容,您的异常应该完全填充。
简单地做
log.error("My message", e);