gpt4 book ai didi

Java/Slf4J : Custom logging for a single class?

转载 作者:行者123 更新时间:2023-12-02 09:53:06 25 4
gpt4 key购买 nike

我有一个 Spring Boot 应用程序,其 application.yml 如下所示:

logging:
level:
com.mycompany.TestClass: OFF

通过这个,我可以控制该类是否输出任何日志。我想要做的是,对于这个特定的类,在没有堆栈跟踪的情况下格式化异常消息(不影响任何非异常日志记录)。例如,如果类的某些方法抛出异常,并且我按如下方式记录异常:

try {
//throw index of bounds exception
} catch(Exception e){
log.error("Error occurred: " + e)
}

我只想要下面的部分(没有堆栈跟踪):

Error occurred: java.lang.IndexOutOfBoundsException: Index: 1, Size: 1

这可能吗?

编辑我正在尝试以 JAR 文件的日志记录为目标 - 我无权修改代码...

最佳答案

如果您正在使用,则必须在 logback.xml 中使用异常深度。 logback 和 slf4j 中有一个工具,您可以在其中提及异常堆栈跟踪的长度。我在下面提供了代码片段。

<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<!-- %rEx... prints exception causes in REVERSE order: http://nurkiewicz.blogspot.com/2011/09/logging-exceptions-root-cause-first.html -->
<pattern>
<![CDATA[%-19(%date{HH:mm:ss.SSS} [%.8thread]) %-5level %-128(%-32(%replace(%logger{1}){'^org\.wrml.*\.',''}) - %msg) %n%rEx]]></pattern>
</encoder>
</appender>

您必须使用正确的布局。

请参阅下面的链接以了解更多信息。

https://www.nurkiewicz.com/2011/09/logging-exceptions-root-cause-first.html

https://logback.qos.ch/manual/layouts.html#rootException

如果您想使用application.yml进行配置,可以引用下面的链接。

https://springframework.guru/using-yaml-in-spring-boot-to-configure-logback/

关于Java/Slf4J : Custom logging for a single class?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56172827/

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