我正在寻找一个Log4J布局/格式化程序,它可以帮助我修剪异常中的堆栈跟踪比默认值更好一些。堆栈执行位于main()之下的位置是非常明显的,我不需要知道,并且异常发生在其他库中,我真的无能为力。
我想要的是一个用于修剪堆栈跟踪的布局,比如我自己的代码中方法的最后5个方法调用,通过包含jar文件,包或其他内容来识别。
这些问题是否存在,或者我自己必须写一些魔法?
答案 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)
有三种方法可以做到这一点:
答案 4 :(得分:0)
您可以编写一个具有您需要的特殊逻辑的自定义Appender。这可能是一个很好的方式。