log4j2 SMTP Appender:如何将以前的消息包含在另一个级别?
我正在使用log4j2-beta9,我有以下配置(部分):
%d{dd-MM-yyyy HH:mm:ss,SSS} %5p %m%n
使用此配置,我收到的电子邮件只有一(1)个错误消息。 如何配置log4j2以接收1条错误消息和N条以前的LEVEL = INFO消息?
提前致谢。
目前这是不可能的:SMTP appender有一个缓冲区 ,它在通过电子邮件发送之前捕获日志事件,但它只捕获为目标级别配置的事件(在您的示例中为ERROR)。 如果您将其更改为INFO,您将收到所有INFO级别日志消息的电子邮件通知(而不仅仅是ERROR级别消息之前的消息)。
您可以在log4j 问题跟踪器或log4j用户邮件列表中将此提升为function请求。
更正:我错了,错了,错了 !
STMP Appender确实有一个缓冲区,但它意味着捕获ERROR日志事件之前的最后一个X(默认为512)INFO,DEBUG,TRACE级别的消息。 所以它应该像你期望的那样工作(就像log4j-1.x SMTP appender一样)。
SMTP Appender会在收到ERROR(或更严重)级别的日志事件时触发电子邮件。 因此,在您的配置中,您不仅应该将ERROR级别的日志事件发送到此appender(或者您将错过它之前的INFO,DEBUG,TRACE事件)。
在您的配置中,将
更改为
。
这应该解决问题。 如果您仍然遇到问题,其他人报告了类似的问题,并且显然通过在配置中添加ThresholdFilter找到了解决方法:
%d{dd-MM-yyyy HH:mm:ss,SSS} %5p %m%n