Java 是否有一个Log4J布局/格式化程序可以修剪异常的堆栈跟踪?

Java 是否有一个Log4J布局/格式化程序可以修剪异常的堆栈跟踪?,java,exception,log4j,Java,Exception,Log4j,我正在寻找一个Log4J布局/格式化程序,它可以帮助我在异常情况下比默认情况下更好地修剪堆栈跟踪。堆栈执行在main()下面的某个地方,这对我来说是很明显的,也没有必要知道,而在其他库中深层次发生的异常,我实在无能为力 我想要的是一个布局,它将堆栈跟踪修剪到我自己代码中方法的最后5个方法调用,通过包含jar文件、包或其他内容来标识 有没有类似的东西,或者我必须自己写一些魔术?有三种方法可以做到这一点: 查找其他人创建的库或代码 自己编写(扩展/实现) 使用默认布局,但在将异常传递给记录器之前修剪

我正在寻找一个Log4J布局/格式化程序,它可以帮助我在异常情况下比默认情况下更好地修剪堆栈跟踪。堆栈执行在main()下面的某个地方,这对我来说是很明显的,也没有必要知道,而在其他库中深层次发生的异常,我实在无能为力

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


有没有类似的东西,或者我必须自己写一些魔术?

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

  • 查找其他人创建的库或代码
  • 自己编写(扩展/实现)
  • 使用默认布局,但在将异常传递给记录器之前修剪异常堆栈

  • 您可以编写具有所需特殊逻辑的自定义追加器。那可能是个好办法。

    我刚才问过

    不幸的是,没有相应的设置,您需要将PatternLayout子类化才能完成此操作。

    logback classic(log4j的后续版本)中的“ex”或“exception”转换字支持打印指定数量的堆栈跟踪线。“ex”转换字用文档记录。你需要向下滚动一点


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

    我也尝试查找此邮件列表,但没有找到任何令人满意的内容,因此我编写了一个自定义的一次性渲染器,可以删除无关的堆栈帧。我已经将代码开源给其他人使用。看看我对它的看法;你可以在那里找到代码的链接。

    谢谢,我知道我自己可以做到。我在问是否已经有某种东西(部分?)解决了这个问题。拐点部分有点让我摸不着头脑。谢谢。在没有测试的情况下,这似乎是我当时想要的。不幸的是,我不再需要它,但我接受这个答案是为了帮助任何来寻找它的人。