Log4j2 SmtpAppender包含没有堆栈跟踪源代码位置的异常

时间:2019-05-03 09:59:25

标签: java log4j2

我们有一个SmtpAppender,配置了自定义RateLimiter过滤器和ERROR日志级别,除异常格式外,一切都按预期工作,它们包括源代码位置,要删除,我们在初始化日志记录功能后以编程方式将此类追加程序添加到每个日志记录器中,例如log:

2019-05-03 10:39:58,871        Thread-9 ERROR s.utils.Startup - Testing error
java.lang.RuntimeException: Testing error
    at com.somepackage.SomeClass.lambda$enableEmailLogging$0(Startup.java:619) ~[classes/:?]
    at java.lang.Thread.run(Thread.java:748) [?:1.8.0_212]

~[classes/:?][?:1.8.0_212]也使我们烦恼;通常,我们希望日志记录中始终包含在RollingRandomAccessFile附加程序中也能很好完成的异常,但是具有与堆栈跟踪源代码位置相同的问题,这也是我们的滚动文件的摘要附加器:

<Appenders>
   <RollingRandomAccessFile name="RollingFile" fileName="/opt/tomcat/logs/some-webapp.log"
                                 filePattern="/opt/tomcat/logs/some-webapp.log-%d{yyMMdd-HH}"
                                 ignoreExceptions="false">
       <PatternLayout>
           <Pattern>%d{DEFAULT} %15.15t %-5p %15.15c - %m%n</Pattern>
       </PatternLayout>
       <Policies>
           <TimeBasedTriggeringPolicy/>
       </Policies>
   </RollingRandomAccessFile>
</Appenders>

我到处寻找一种没有运气的方法来实现这一目标。

1 个答案:

答案 0 :(得分:0)

从以下位置更改PatternLayout的模式:

%d{DEFAULT} %15.15t %-5p %15.15c - %m%n

%d{DEFAULT} %15.15t %-5p %15.15c - %m%n%throwable

并从附加程序中删除选项ignoreExceptions似乎完成了我想要的。