我正在编写一个自定义 log4j appender,并且我想依赖另一个配置的 appender 作为后备,以防我的(数据库)appender 失败。
如何保证附加程序的构建顺序?我的 appender 的activateOptions()
方法尝试访问另一个 appender 并失败,因为它尚未构造/注册。
我正在编写一个自定义 log4j appender,并且我想依赖另一个配置的 appender 作为后备,以防我的(数据库)appender 失败。
如何保证附加程序的构建顺序?我的 appender 的activateOptions()
方法尝试访问另一个 appender 并失败,因为它尚未构造/注册。
我建议将第二个附加程序的配置选项移动/复制到您的自定义附加程序的配置中,然后在您的自定义附加程序中自己创建第二个附加程序。
如果您在 XML 中使用配置文件,那么您可以利用 XML 文件中附加程序的声明顺序很重要的事实。首先声明的 appender 将首先配置。如果您使用 .properties 格式的配置文件,那么它们的配置顺序取决于记录器(即类别)引用它们的顺序。首先是引用的附加程序将首先配置。
您还可以查看 logback,它是 log4j 的继任者,它有很好的文档记录。
如果事实证明没有办法做您想做的事,您可以从“主要”附加程序内部创建和配置“后备”附加程序,而不是将其留给 log4j 进行配置。不是一个很好的解决方案,但我不知道如何在附加程序之间添加依赖项。