Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java log4j附加器之间的依赖关系_Java_Dependencies_Log4j_Appender - Fatal编程技术网

Java log4j附加器之间的依赖关系

Java log4j附加器之间的依赖关系,java,dependencies,log4j,appender,Java,Dependencies,Log4j,Appender,我正在编写一个定制的log4j appender,我想依靠另一个配置的appender作为后备,以防我的(数据库)appender失败 我如何保证附件的施工顺序?我的appender的activateOptions()方法尝试访问另一个appender,但失败了,因为它尚未构造/注册。如果没有一种方法可以实现您想要的功能,您可以从“主”appender内部创建和配置“回退”appender,而不是将其留给log4j进行配置。这不是一个很好的解决方案,但我不知道如何在附加程序之间添加依赖项。我建议

我正在编写一个定制的log4j appender,我想依靠另一个配置的appender作为后备,以防我的(数据库)appender失败


我如何保证附件的施工顺序?我的appender的
activateOptions()
方法尝试访问另一个appender,但失败了,因为它尚未构造/注册。

如果没有一种方法可以实现您想要的功能,您可以从“主”appender内部创建和配置“回退”appender,而不是将其留给log4j进行配置。这不是一个很好的解决方案,但我不知道如何在附加程序之间添加依赖项。

我建议将第二个附加程序的配置选项移动/复制到自定义附加程序的配置中,然后自己在自定义附加程序中创建第二个附加程序。

如果使用XML格式的配置文件,然后,您可以利用这样一个事实,即XML文件中附加程序的声明顺序很重要。首先声明的appender将首先配置。如果您使用的是.properties格式的配置文件,那么它们的配置顺序取决于记录器a.k.a.类别引用它们的顺序。将首先配置首先引用的appender


您还可以看看logback,log4j的继任者,它有很好的文档记录。

哇,您的答案似乎指向了另一个问题。是的,我知道阑尾并不神秘。是的,我知道配置映射到setter/getter(顺便说一句,我错过了C#的属性),我问的是不同记录器之间的依赖关系。你的答案有什么相关性?请注意——不同的附加器之间的依赖关系,而不是记录器。是的,我最后就是这么做的。不太干净,但可以用。