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

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

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

有帮助吗?

解决方案

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

其他提示

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

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top