首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将log4j配置为不打印异常堆栈跟踪?

如何将log4j配置为不打印异常堆栈跟踪?
EN

Stack Overflow用户
提问于 2008-12-08 03:11:16
回答 8查看 24.7K关注 0票数 21

我们使用Log4j (和通用日志记录)来记录错误消息。现在,我们想要设置一个额外的日志附加器,它将致命错误输出到syslog,但是没有超长的Java堆栈跟踪(这些堆栈跟踪在完整的日志文件中仍然可用)。

如何配置(使用log4j.xml)?是否有可用的过滤器来忽略堆栈跟踪?

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2008-12-08 03:32:25

在阅读更多源代码后进行编辑:

您仍然需要继承Throwable的子类,但是您想要覆盖的方法是ignoresThrowable():它应该返回false,这将阻止附加器编写Throwable(它假设布局已经这样做了)。

没有办法在配置中指定这一点: PatternLayout有一个硬编码的"return true“。

票数 17
EN

Stack Overflow用户

发布于 2009-11-24 16:58:34

下面是我实际使用的代码:

代码语言:javascript
复制
import org.apache.log4j.PatternLayout;

public class NoStackTracePatterLayout extends PatternLayout {

 @Override
 public boolean ignoresThrowable(){
  return false;
 }
}
票数 11
EN

Stack Overflow用户

发布于 2015-03-26 01:02:39

如果使用log4j > 1.2.16,则可以使用EnhancedPatternLayout布局。

示例(使用log4j.properties文件),将其定义为附加器的布局,然后在转换模式中添加%throwable{0}

代码语言:javascript
复制
log4j.appender.XXX.layout=org.apache.log4j.EnhancedPatternLayout
log4j.appender.XXX.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c:%L - %m%n%throwable{0}
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/348582

复制
相关文章

相似问题

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