首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Log4j不打印堆栈跟踪

Log4j不打印堆栈跟踪
EN

Stack Overflow用户
提问于 2011-04-14 19:33:48
回答 3查看 12.7K关注 0票数 6

我捕获了NullPointerException但log4j没有打印堆栈跟踪,我的方面发生了异常行数等什么问题?

我的日志

代码语言:javascript
复制
20110412-101042,317[ Timer-7][R] Exception while processing for value: abc.                  [xyz.Dummy]
java.lang.NullPointerException

log4j.property文件

代码语言:javascript
复制
log4j.rootCategory=ERROR, logfile
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%-5p %r [%t] : %m%n
log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.File=my_application.log
log4j.appender.logfile.Append=true
log4j.appender.logfile.MaxBackupIndex =10
log4j.appender.logFile.MaxFileSize=40000KB
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d{yyyyMMdd-HHmmss,SSS}[%8.8t][%.1p] %-70m[%c{2}]%n

我的代码片段

代码语言:javascript
复制
String value;
try {
   value = "abc";
   //... lots for code
}catch(Exception e) {
   logger.error("Exception while processing for value: " + value + ". ", e);
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-04-14 19:49:37

问题出在布局中的%-70m。它会截断消息,因此不会到达堆栈跟踪。像往常一样使用%m

更好的做法是:编写一个自定义布局,它将按照您的意愿工作。

票数 4
EN

Stack Overflow用户

发布于 2013-10-24 16:17:30

您的代码只显示了您想要查看堆栈跟踪的异常message.If,您必须使用类似如下的内容:

How to store printStackTrace into a string

试着用那个来代替异常'e‘。

票数 -1
EN

Stack Overflow用户

发布于 2015-09-25 23:05:47

想要打印行号的人,不想打印完整的堆栈跟踪,想知道空指针异常发生在哪里,请尝试如下所示:

代码语言:javascript
复制
try {
 // your code here
}catch(NullPointerException ne){
 System.out.println("NullPointerException : LineNumber:"+ne.getStackTrace()[0].getLineNumber()+" : "+ne);

}
票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5662582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档