我正在编写一个自定义的log4j appender,我希望依赖另一个已配置的appender作为后备,以防我的(数据库)appender失败。
如何保证appender的构建顺序?我的appender的activateOptions()
方法试图访问另一个appender并失败,因为它还没有构建/注册。
答案 0 :(得分:1)
我建议将第二个appender的配置选项移动/复制到自定义appender的配置中,然后在自定义appender中自己创建第二个appender。
答案 1 :(得分:1)
如果您正在使用XML中的配置文件,那么您可以利用XML文件中的appender声明顺序很重要的事实。将首先配置首先声明的appender。如果您使用的是.properties格式的配置文件,那么它们的配置顺序取决于记录器a.k.a.类别引用它们的顺序。将首先配置首先引用的appender。
您还可以查看logback,log4j的后续内容,这是很好的文档。
答案 2 :(得分:0)
如果事实证明没有办法做你想做的事情,你可以在“主要”appender中创建和配置“fallback”appender,而不是将它留给log4j进行配置。这不是一个非常好的解决方案,但我不知道在appender之间添加依赖关系的方法。