2012-10-25 109 views
1

是否可以配置駱駝路由將消息發送到特定的log4j記錄器?例如,我有如下記錄:在駱駝上下文中配置Log4j

<logger name="com.me.log.mylogger" additivity="false"> 
    <level value="debug" /> 
    <appender-ref ref="file_appender_messages" /> 
</logger> 

file_appender_messages只是一個RollingFileAppender

然後我試着用我的駱駝背景下它登錄:

​​

但它輸出的命令行,而不是在file_appender_messages指定的日誌文件上:

25-Oct-2012 11:46:44 org.apache.camel.processor.CamelLogger log 
INFO: [MESSAGE BODY] 

我會喜歡能夠使用不同的記錄器來處理來自不同來源的消息。我可以在我的消息處理器中完成它,但理想情況下它可以在xml路由中配置。可以做到嗎?

+0

您正在使用哪個版本的Camel? –

+0

2.7.2 - 我知道它有點老,但這是一件工作。 – Robert

+0

我應該工作。你確定你的log4j配置被加載了嗎? –

回答

2

我通過定義記錄儀作爲一個Bean在我的應用程序的XML文件

<bean id="myLogger" class="org.apache.log4j.Logger" factory-method="getLogger"> 
    <constructor-arg value="com.me.log.mylogger"/> 
</bean> 

然後在我的路線,當我要記錄的消息解決了這個我只是將它指向Bean上的相關方法

<to uri="bean:myLogger?method=info" /> 
1

駱駝使用slf4j一段時間以來。所以你必須首先配置slf4j來使用log4j作爲後端。 Maven中添加下面的依賴關係:

<dependency> 
    <groupId>org.slf4j</groupId> 
    <artifactId>slf4j-log4j12</artifactId> 
    <version>1.6.1</version> 
</dependency> 
<dependency> 
    <groupId>log4j</groupId> 
    <artifactId>log4j</artifactId> 
    <version>1.2.16</version> 
</dependency>