2

我正在编写一个自定义 log4j appender,并且我想依赖另一个配置的 appender 作为后备,以防我的(数据库)appender 失败。

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

4

3 回答 3

1

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

于 2009-08-10T07:37:04.427 回答
1

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

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

于 2009-08-10T21:48:04.383 回答
0

如果事实证明没有办法做您想做的事,您可以从“主要”附加程序内部创建和配置“后备”附加程序,而不是将其留给 log4j 进行配置。不是一个很好的解决方案,但我不知道如何在附加程序之间添加依赖项。

于 2009-08-10T07:32:19.553 回答