在Camel上下文中配置Log4j

在Camel上下文中配置Log4j,log4j,apache-camel,Log4j,Apache Camel,是否可以配置驼峰路由以向特定log4j记录器发送消息?例如,我有以下记录器: <logger name="com.me.log.mylogger" additivity="false"> <level value="debug" /> <appender-ref ref="file_appender_messages" /> </logger> 但它在命令行上输出,而不是在文件\u appender\u消息中指定的日志文件中输出:

是否可以配置驼峰路由以向特定log4j记录器发送消息?例如,我有以下记录器:

<logger name="com.me.log.mylogger" additivity="false">
    <level value="debug" />
    <appender-ref ref="file_appender_messages" />
</logger>
但它在命令行上输出,而不是在
文件\u appender\u消息中指定的日志文件中输出:

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

我希望能够使用不同的记录器来记录来自不同来源的消息。我可以在我的消息处理器中进行配置,但理想情况下可以在路由xml中进行配置。可以这样做吗?

骆驼使用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>

org.slf4j
slf4j-log4j12
1.6.1
log4j
log4j
1.2.16

Camel使用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>

org.slf4j
slf4j-log4j12
1.6.1
log4j
log4j
1.2.16

我通过在我的应用程序XML文件中将记录器定义为Bean解决了这个问题

<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" />

我通过在我的应用程序XML文件中将记录器定义为Bean解决了这个问题

<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" />


您使用的是哪一版本的Camel?2.7.2-我知道它有点旧,但这是一种工作方式。我应该工作。你确定你的log4j配置已经加载了吗?是的,使用
Logger.getLogger(“com.me.log.myLogger”)
并调用
.info
在Java中获取Logger可以正常工作。你使用的是哪一个版本的Camel?2.7.2-我知道它有点旧,但这是一件工作。我应该工作。你确定你的log4j配置已经加载了吗?是的,使用
Logger.getLogger(“com.me.log.myLogger”)
并调用
.info
在Java中获取记录器可以正常工作。