gpt4 book ai didi

java - 故障转移 Appender 备份 JMS Appender - 没有与元素故障转移相匹配的参数

转载 作者:太空宇宙 更新时间:2023-11-04 11:16:59 25 4
gpt4 key购买 nike

我在使 log4j2 与 ActiveMQ 一起使用时遇到一些问题。

这是我的 log4j2.xml :

<Configuration>
<ThresholdFilter level="all"/>
<Appenders>
<Console name="STDOUT" target="SYSTEM_OUT">
<PatternLayout pattern="%m%n"/>
<Filters>
<ThresholdFilter level="info" />
</Filters>
</Console>

<File name="baseLog" filename="\\\\p02630\\c$\\tmp\\logs\\logws-gendb.log">
<PatternLayout>
<Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
</PatternLayout>
<Filters>
<ThresholdFilter level="error"/>
</Filters>
</File>

<JMS name="AMQError" providerurl="tcp://169.3.200.150:61616" password="admin" userName="admin">
<factoryName>org.apache.activemq.jndi.ActiveMQInitialContextFactory</factoryName>
<factoryBindingName>ConnectionFactory</factoryBindingName>
<TopicBindingName>logError</TopicBindingName>
</JMS>
<Failover name="FailOverAMQ" primary="AMQError">
<Failovers>
<appender-ref ref="baseLog"/>
</Failovers>
</Failover>
</Appenders>
<Loggers>
<root>
<AppenderRef ref="STDOUT" />
<AppenderRef ref="baseLog" />
<AppenderRef ref="FailOverAMQ" />
</root>
</Loggers>
</Configuration>

目标是能够在 ActiveMQ 中记录错误。但是,如果/当 AMQ 服务器关闭时,我希望记录器能够自动重新连接,并仍然在文件 Appender 中记录错误。

当服务器运行时,一切正常。但是当我关闭服务器时,ActiveMQ(正常)和文件 Appender 都不起作用,并且当服务器恢复时,log4j 在 60 秒自动重新连接时间(默认)后不会自动重新连接。更麻烦的是,我的文件附加器在服务器关闭后不再工作。

我首先遇到了“没有与元素故障转移匹配的参数”的问题,详情here并尝试添加注册“故障转移”元素的 FallBack 类。它确实删除了错误消息,但故障转移附加程序并没有更好地工作。我的印象是这个类所做的一切都是为了混淆错误。

您在使用故障转移附加程序方面运气好吗?

感谢您的帮助。

最佳答案

快速跟进。

我找不到解决此问题的方法。似乎是 log4j2 中的一个错误。

最后,我使用 javax.jms 包开发了一个简短的类来管理与 ActiveMQ 的连接。

并不完美,但至少,它有效。

关于java - 故障转移 Appender 备份 JMS Appender - 没有与元素故障转移相匹配的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45350105/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com