1

我面临一个奇怪的问题,我正在使用以下技术 STACK Spring(IOC 容器)、spring batch、Hibernate、camel 和 Log4J 来处理一个批处理应用程序,我已将 log4J 配置为仅用于文件 appender,我的所有应用程序日志都转到我的log 文件,但奇怪的是所有 Camel 日志都转到控制台附加程序(我的 log4J 属性文件上没有配置控制台附加程序)

Spring – Camel 集成是 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

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

[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
4

1 回答 1

0

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

SLF4J: Class path contains multiple SLF4J bindings. 

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

于 2016-03-22T19:52:52.460 回答