gpt4 book ai didi

java - Slf4j/logback - 在单独的文件中打印堆栈跟踪

转载 作者:行者123 更新时间:2023-11-30 10:40:43 25 4
gpt4 key购买 nike

我正在建立一个由 logback 支持的 slf4j 项目。我用

在程序的根目录记录异常
logger.error(ex.getMessage(), ex);

我已经像这样配置了 logback(减去不重要的东西)

<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>app.log</file>
<encoder>
<pattern>${details}: %msg%n</pattern>
</encoder>
</appender>

<root>
<appender-ref ref="FILE"/>
</root>

重要的部分工作正常。我的问题是,尽管 %ex 没有包含在我的模式中,但无论如何都会在错误消息之后打印堆栈跟踪,作为类似 sysout 的常规行。

00:23:50.713 错误 blabla:发生了一些事情
java.lang.RuntimeException:发生了一些事情
在 ...
在 ...

因为我希望我的日志易于解析,所以堆栈跟踪妨碍了我(它不适合我的行格式),我不希望它出现在那里。我希望堆栈跟踪转到一个单独的文件,打印为

<file>stacktrace.log</file>
<encoder>
<pattern>${details}: %ex%n</pattern>
</encoder>

我假设这个明显的东西不是 logback 中的错误,尽管在模式中不存在堆栈跟踪 oopsie 进入输出。我一直在查看文档,但我似乎无法找到一种方法来获得我想要的东西:仅在专用的堆栈跟踪日志中打印堆栈跟踪。可以吗?

最佳答案

我刚找到 this important nuance在文档中:

如果您没有在转换模式中指定 %xThrowable 或其他与 throwable 相关的转换词,考虑到堆栈跟踪信息的重要性,PatternLayout 将自动将其添加为最后一个转换词。如果您不希望显示堆栈跟踪信息,则可以用 $nopex 转换词代替 %xThrowable。另请参阅 %nopex 转换词。

考虑到这一点,它只是对存在的异常等进行简单过滤。

关于java - Slf4j/logback - 在单独的文件中打印堆栈跟踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38798812/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com