使用Log4j JMS appender连接ActiveMQ

时间:2013-02-08 19:42:35

标签: log4j mule activemq esb

我正在尝试使用ActiveMQ将日志记录添加到我们的Mule应用程序中,以便将所有消息写入SQL Server数据库。这是我在Mule中的Log4j属性文件的内容:

log4j.rootCategory=INFO, console, jms

log4j.logger.org.apache.activemq=INFO, stdout

log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%-5p %d [%t] %c: %m%n


# Mule classes
log4j.logger.org.mule=INFO
log4j.logger.com.mulesoft=INFO

# Your custom classes
log4j.logger.com.mycompany=DEBUG

# JMS Appender
log4j.appender.jms=org.apache.log4j.net.JMSAppender
log4j.appender.jms.InitialContextFactoryName=org.apache.activemq.jndi.ActiveMQInitialContextFactory
log4j.appender.jms.ProviderURL=tcp://sjc04-wduatesb1:9162
#tcp//localhost:61616
log4j.appender.jms.TopicBindingName=logTopic
log4j.appender.jms.TopicConnectionFactoryBindingName=ConnectionFactory

正如您所看到的,我正在尝试使用JMS appender。我还有一个JNDI配置文件指向要读取的主题,该文件的内容存储在$ MULE_HOME / conf /中

topic.logTopic = logTopic

但是我发现即使消息已经入队了,在该主题上出列,它没有被写入数据库。有没有人对我出错的地方有什么想法或建议?

1 个答案:

答案 0 :(得分:0)

解决此问题的一种方法是为主题创建订阅者,将消息放入队列,然后让队列消费者将消息放入数据库中。