【发布时间】:2019-12-20 12:45:34
【问题描述】:
我们有一个使用自定义 RollingFileAppender(从 log4j 1.x 中的 org.apache.log4j.RollingFileAppender 扩展)的大型应用程序。我们重写了几个方法,但两个主要方法是 rollOver() 和 subAppend(),如下所示:
public void rollOver()
{
// Custom Code to specify how rolled-over files should be numbered and which file should be
// overwritten when MaxBackupIndex is reached
}
public void subAppend(LoggingEvent event)
{
// Custom Code to encrypt message before writing it
String data = this.layout.format(event);
if (isEncryptionOn())
{
data = PlatformEncryptDecrypt.encrypt2Way(data);
data = toUnicodeHexString(data);
}
this.qw.write(data);
.
.
.
// Other code taken from parent class
.
.
.
}
在将其迁移到 log4j2 时,我想尽可能地利用 log4j2 的 RollingFileAppender,同时仅覆盖选定的方法。由于 RollingFileAppender 是最终类,我更喜欢使用 builder 来创建自定义 appender。我浏览了一些其他类似的帖子,但他们谈论的是使用 RollingFileAppender 记录一些额外的属性。
使用当前最新版本的 log4j2(即 2.13)实现此目的的最佳方法是什么?非常感谢任何帮助。
【问题讨论】: