当前位置:  开发笔记 > 编程语言 > 正文

如何配置log4j以不打印异常堆栈跟踪?

如何解决《如何配置log4j以不打印异常堆栈跟踪?》经验,为你挑选了4个好方法。

我们使用Log4j(和Commons Logging)来记录我们的错误消息.现在我们要设置一个额外的日志追加器,将致命错误输出到syslog,但没有特别长的Java堆栈跟踪(这些仍将在完整的日志文件中提供).

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



1> kdgregory..:

阅读更多来源后编辑:

你仍然需要继承PatternLayout,但你要覆盖的方法是ignoresThrowable():它应该返回false,这将阻止appender写入Throwable(它假设布局已经这样做了).

无法在配置中指定此项:PatternLayout具有硬编码"return true".



2> Totach..:

这是我使用的实际代码:

import org.apache.log4j.PatternLayout;

public class NoStackTracePatterLayout extends PatternLayout {

 @Override
 public boolean ignoresThrowable(){
  return false;
 }
}



3> boumbh..:

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

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

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}



4> Javier..:

在1.2.16中,您可以使用EnhancedPatternLayout

推荐阅读
虎仔球妈_459
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有