是否有Log4J布局/格式化程序修剪堆栈跟踪异常?

时间:2009-05-07 22:11:44

标签: java exception log4j

我正在寻找一个Log4J布局/格式化程序,它可以帮助我修剪异常中的堆栈跟踪比默认值更好一些。堆栈执行位于main()之下的位置是非常明显的,我不需要知道,并且异常发生在其他库中,我真的无能为力。

我想要的是一个用于修剪堆栈跟踪的布局,比如我自己的代码中方法的最后5个方法调用,通过包含jar文件,包或其他内容来识别。

这些问题是否存在,或者我自己必须写一些魔法?

5 个答案:

答案 0 :(得分:2)

我问了similar question (about completely suppressing the stack trace一会儿。

不幸的是,没有设置,你需要继承PatternLayout来实现它。

答案 1 :(得分:1)

logback-classic(log4j的后继者)中的“ex”或“exception”转换字支持打印指定数量的堆栈跟踪行。使用rest of conversion words记录“ex”转换字。你需要向下滚动一点。

如果您需要有关此主题的更多信息,请联系logback用户邮件列表。

答案 2 :(得分:1)

我也试过寻找这个,但没有找到任何令人满意的东西,所以我写了一个自定义的ThrowableRenderer来修剪掉多余的堆栈帧。我已经开放了供其他人使用的代码。查看我的blog post;你可以在那里找到代码的链接。

答案 3 :(得分:0)

有三种方法可以做到这一点:

  1. 查找其他人所做的库或代码
  2. 自己写(扩展/实施)
  3. 使用默认布局,但在将异常的堆栈传递给logger
  4. 之前将其删除

答案 4 :(得分:0)

您可以编写一个具有您需要的特殊逻辑的自定义Appender。这可能是一个很好的方式。