我们使用log4j 1.2.x登录我们的产品,并希望在不久的将来迁移到log4j 2.x.我们实现的功能之一是在生成的每个新的翻转日志文件上记录系统信息和其他重要参数.我们在log4j 1.2.x中实现的方式是我们扩展了RollingFileAppender类的log4j并覆盖了rollOver()方法,下面是实现的部分片段
@Override
public void rollOver() {
super.rollOver(); //We are not modifying it's default functionality but as soon as rollOver happens we apply our logic
//
// Logic to log required system properties and important parameters.
//
}
现在我们想要迁移到log4j2,我们正在寻找一种新的解决方案来实现相同的功能.但是当我看到log4j2的源代码时,它与旧的源代码非常不同. RollingFileAppender类不包含rollover()方法,因为它已被移动到RollingManagerhelper并且它已被设置为私有.
开发一个完整的新包并从log4j2扩展/实现一些抽象/辅助类是我们可能的解决方案之一,但这需要大量的编码/复制,因为我们不修改RollingFileAppender所做的事情,而只需要对它进行小的扩展.有一个简单的解决方案吗?
UPDATE
我根据答案中的建议创建了自定义查找,下面是我创建它的方式;
@Plugin(name = "property", category = StrLookup.CATEGORY)
public class CustomLookup extends AbstractLookup {