作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 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/
我是一名优秀的程序员,十分优秀!