我有一个使用 log4j RollingFileAppender 将日志信息转储到文件中的 Web 应用程序。该应用程序当前配置为仅转储 WARN 和更高的日志信息,以便磁盘 I/O 不会影响服务器的性能。
但是,我想知道发生错误时的最后一次X调试信息。有没有办法配置 log4j 将最后 25 行调试信息以及错误信息转储到文件中?
我认为这可以使用自定义附加程序来完成。我尝试搜索示例但找不到。
我认为自己编写是要走的路。您可以实现Appender并将对它的每个调用委托给底层 RollingFileAppender 吗?
在您的实现中,只需存储最新的“n”条日志消息,并写入滚动文件附加程序。如果遇到错误消息,则将存储的调试消息转储到滚动文件附加程序。
是的,我知道的唯一方法是编写自己的Appender
. 扩展RollingFileAppender
或编写Appender
委托给RollingFileAppender
. 在您的 newAppender
中,保留最后 N 个日志记录事件的历史记录,当某些内容以 ERROR 级别记录时,转储您的日志记录事件历史记录。我自己开始实现这样的东西,但从未完成过。