log4j2队列/主题配置按春天

时间:2016-10-14 07:31:15

标签: database spring logging log4j2

有没有办法配置log4j2来读取Appender属性,例如spring bean?我很好奇,特别是在JmsAppender中,根据从数据库读取的参数而不是从JNDI上下文动态设置它的目标目标。

BR 佐尔坦

2 个答案:

答案 0 :(得分:0)

最好的机会是扩展JMSAppender并覆盖记录器中的append方法。一个很好的例子是here

这种情况下,该类扩展并使用AMQ将这些消息发布到。您应该能够从数据库中扩展它并使用API​​来获取队列或主题的句柄并开始向其中添加消息。这假设您拥有正确的客户端库和权限,可以从数据库(在您的情况下)连接到消息传递提供程序(例如,在WMQ中,您可能需要QM名称,队列,主机,端口)。然后,可以在LOG4J2配置中使用扩展的JMS appender来发送日志消息。

答案 1 :(得分:0)

似乎我找到了一个非常有用的混合源,自定义JmsAppender结合弹簧上下文:

<Configuration>
    <Appenders>
        <OwnJmsAppender name="jmsQueue">
            <PatternLayout pattern="%maxLen{%d{DEFAULT} [%p] - %m %xEx%n}{500}" />
        </OwnJmsAppender>
</Appenders>
<Loggers>
    <Logger name="com.your.package" level="info" additivity="false">
        <AppenderRef ref="jmsQueue" />
    </Logger>
</Loggers>
</Configuration>

}

从log4j2.xml调用它:

SELECT Date, Status FROM Table GROUP BY Date