Spring-Camel(骆驼日志默认为控制台appender)

时间:2013-09-12 10:26:15

标签: spring log4j apache-camel

我正面临一个奇怪的问题,我正在使用以下技术堆栈处理一个批处理应用程序 Spring(IOC容器),spring批处理,Hibernate,camel和Log4J用于记录 我只为文件appender配置了log4J,我的所有应用程序日志都转到了我的日志文件,但奇怪的是所有Camel日志都转到了控制台appender(我的log4J属性文件中没有配置控制台apender)

Spring - Camel Integration是XMl元素:

 <camelContext xmlns="http://camel.apache.org/schema/spring">
        <routeBuilder ref="smtBatchRouter" />
    </camelContext>

我的Log4J配置:

log4j.rootLogger=TRACE, file
log4j.logger.org.apache=TRACE
log4j.logger.org.directwebremoting=OFF
log4j.logger.org.hibernate=OFF
log4j.logger.org.springframework=WARN

log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.file=myapp.log
log4j.appender.file.ImmediateFlush=true
log4j.appender.file.bufferedIO=false
log4j.appender.file.DatePattern='.' dd-MM-yyyy
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d [%-15.15t] %-5p %-30.30c{1} - %m%n
log4j.appender.file.threshold=TRACE

我在控制台中获取的示例Camel日志:

[main] INFO org.apache.camel.spring.SpringCamelContext - Apache Camel 2.11.0 (CamelContext: camel-1) started in 4.009 seconds
[Camel (camel-1) thread #0 - sftp://xyz.com/smtDataFolder] INFO org.apache.camel.component.file.remote.SftpOperations - JSCH -> Connecting to localhost port 22
[Camel (camel-1) thread #0 - sftp://xyz.com/smtDataFolder] INFO org.apache.camel.component.file.remote.SftpOperations - JSCH -> Connection established
[Camel (camel-1) thread #0 - sftp://xyz.com/smtDataFolder] INFO org.apache.camel.component.file.remote.SftpOperations - JSCH -> Remote version string: SSH-1.99-OpenSSH_4.6

2 个答案:

答案 0 :(得分:0)

您是否检查了Apache Camel文档 - http://camel.apache.org/how-do-i-use-log4j.html

答案 1 :(得分:0)

我有同样的问题并解决了它。 使用标志运行您的应用程序:
    -Dlog4j.debug
它会将诊断信息添加到您的控制台。就我而言,它是

SLF4J: Class path contains multiple SLF4J bindings. 

所以我刚刚删除了多余的slf4j-jdk14-1.7.9.jar,只留下了slf4j-log4j12-1.7.19.jar