java - Log4j2.properties 中的故障转移配置

标签 java log4j log4j2

我正在尝试在我的 Gradle 项目的 Log4j2.properties 中为 Failover 设置正确的配置。

这些是配置:

appenders = console, http, failover
rootLogger.level = debug
rootLogger.appenderRef.stdout.ref = STDOUT
rootLogger.appenderRef.http.ref = Http

appender.console.type = Console
appender.console.name = STDOUT
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = [%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n 

appender.http.type = Http
appender.http.name = Http
appender.http.url = https://localhost:9200/test/log4j/
appender.http.method = POST
appender.http.layout.type = JsonLayout
appender.http.ignoreExceptions = false

appender.failover.type = Failover
appender.failover.name = Failover
appender.failover.primary = http
appender.failover.appenders = console

但是,当我运行该应用程序时,我收到此错误:

2019-12-29 00:28:41,701 main ERROR Failover contains an invalid element or attribute "appenders"
2019-12-29 00:28:41,702 main ERROR At least one failover Appender must be specified
2019-12-29 00:28:41,705 main ERROR Null object returned for Failover in Appenders.

我怀疑该错误与 Failovers 配置有关,我没有正确执行此操作,因为我不知道 Failovers AppenderRefs 的正确属性名称 .属性格式

最佳答案

您可能需要添加以下属性。如果您仅为故障转移附加程序执行此操作,请使用下面的内容。您需要将appenderRef 添加到记录器而不是附加程序。这就是您可能收到错误的原因.

loggers=failover
logger.failover.name= #FailOverName
logger.failover.level = debug #or your desired logging level
logger.failover.appenderRefs = STDOUT
logger.failover.appenderRef.stdout.ref = STDOUT

关于java - Log4j2.properties 中的故障转移配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59514672/

相关文章:

java - log4j2 在 stdout 之间打印新行

java - 为什么 log4j 2 不记录应用程序和单元测试的方法名称

java - 启用工具栏图标时如何显示汉堡图标

java - MockwebServer 不模拟 http 调用

java - Android Sqlite - 获取正确的数据库行id

java - log4j 中根记录器级别和阈值之间的区别?

java - Log4j2 记录空 ThreadContext

java - 如何垂直对齐100%宽度?

Log4J2 CloudWatch Appender

java - 单个 Web 应用程序中的 Log4j 多个配置