是否有Log4J布局/格式化程序修剪堆栈跟踪异常?
题
我正在寻找一个Log4J布局/格式化程序,它可以帮助我修剪异常中的堆栈跟踪比默认值更好一些。堆栈执行位于main()之下的位置是非常明显的,我不需要知道,并且异常发生在其他库中,我真的无能为力。
我想要的是一个用于修剪堆栈跟踪的布局,比如我自己的代码中方法的最后5个方法调用,通过包含jar文件,包或其他内容来识别。
这些问题是否存在,或者我自己必须写一些魔法?
解决方案
我也尝试过寻找这个,但没有找到任何令人满意的东西,所以我写了一个自定义的ThrowableRenderer来修剪掉多余的堆栈帧。我已经开源了其他人使用的代码。查看我的博客文章;你可以在那里找到代码的链接。
其他提示
不幸的是,没有设置,你需要继承PatternLayout来实现它。
<!>“ex <!>”;或<!> quot; exception <!> quot; logback-classic中的转换字(log4j的后继者)支持打印指定数量的堆栈跟踪行。 <!>“ex <!>”;转换字记录在其余转换字中。你需要向下滚动一点。
如果您需要有关此主题的更多信息,请联系logback用户邮件列表。
有三种方法可以做到这一点:
- 查找其他人所做的库或代码
- 自己写(扩展/实施)
- 使用默认布局,但在将异常的堆栈传递给logger 之前将其删除 醇>
您可以编写一个具有您需要的特殊逻辑的自定义Appender。这可能是一个很好的方式。
不隶属于 StackOverflow