Java/Slf4J:单个类的自定义日志记录?
我有一个带有Java/Slf4J:单个类的自定义日志记录?,java,spring-boot,logging,slf4j,Java,Spring Boot,Logging,Slf4j,我有一个带有应用程序的Spring Boot应用程序。yml如下所示: logging: level: com.mycompany.TestClass: OFF 通过这个,我可以控制类是否输出任何日志。我想做的是,对于这个特定的类,格式化异常消息而不使用堆栈跟踪(不影响任何非异常日志)。例如,如果类的某个方法引发异常,我将按照如下方式记录该异常: try { //throw index of bounds exception } catch(Exce
应用程序的Spring Boot应用程序。yml
如下所示:
logging:
level:
com.mycompany.TestClass: OFF
通过这个,我可以控制类是否输出任何日志。我想做的是,对于这个特定的类,格式化异常消息而不使用堆栈跟踪(不影响任何非异常日志)。例如,如果类的某个方法引发异常,我将按照如下方式记录该异常:
try {
//throw index of bounds exception
} catch(Exception e){
log.error("Error occurred: " + e)
}
我只想要下面的部分(没有堆栈跟踪):
这有可能吗
编辑
我正在尝试以JAR文件的日志记录为目标-我没有修改代码的权限…您可以尝试使用
e.getMessage()
而不是只传递e
变量。因此,您的代码如下所示:
try {
//throw index of bounds exception
} catch(Exception e){
log.error("Error occurred: " + e.getMessage());
}
如果正在使用,则必须在logback.xml中使用异常深度。在logback和slf4j中有一个工具,您可以在其中提到异常stacktrace的长度。我在下面提供这个片段
<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>
如果要使用application.yml进行配置,可以参考下面的链接
无论如何,要配置application.yml
或application.properties
文件?@GdgamesGamers,我已经更新了答案。请看一看。@gdgamesgames,如果您觉得有帮助,请您投票并标记为已回答好吗?
<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>