我们正在使用 SLF4J/Logback 组合来执行我们的日志记录。我们的要求之一是,如果出现任何故障,请向支持/开发组发送一封电子邮件,其中包含最后 500 条记录的消息。
我试图浏览文档,但没有找到任何相关内容。
我可以想到的一种方法是获取当前日志文件名,读取文件并发送最后 500 条记录。但我不知道如何获取当前的日志文件名。有人知道怎么做吗?或任何其他更好的选择来检索日志尾部?
谢谢
听起来 Log4jSMTPAppender
具有您需要的功能。如果 Logback 缺少类似的 appender(这有点令人惊讶),您可以将其源代码视为模型来指导您自己的实现。
本质上,这个电子邮件附加程序有一个日志事件的环形缓冲区。当触发事件发生时(默认情况下,错误级别或更糟的事件),缓冲区被刷新到电子邮件并发送。
创建一个自定义 Appender 来缓存最后 500 条日志消息。您可以扩展SMTPAppender以通过读取此缓存中的内容来发送电子邮件。
从这里开始