为loggin-channel-adapter配置log4j

时间:2016-08-24 07:02:21

标签: spring logging log4j spring-integration

我使用spring-integration来处理来自Message队列的消息,使用jms-message-driven-channel-adaptor将消息放入processMessage频道。我已配置wire-tap来拦截消息并将消息记录到日志文件中。

我想仅将有效负载记录到日志文件中,但是当我启动应用程序时,所有应用程序级别日志也会与有效负载一起登录到日志文件中。

以下是spring配置和log4j配置以获取更多详细信息。

Spring配置:

<int-jms:message-driven-channel-adapter
    channel="processMessage" destination-name="MyTest.Queue"/>

<int:channel id="processMessage">
    <int:interceptors>
        <int:wire-tap channel="logger"></int:wire-tap>
    </int:interceptors>
</int:channel>

<int:logging-channel-adapter channel="logger" logger-name="myLogger"
    level="INFO" log-full-message="true">
</int:logging-channel-adapter>

Log4j配置:

log4j.rootLogger = INFO, myLogger
log4j.appender.myLogger=org.apache.log4j.FileAppender
log4j.appender.myLogger.File=/app/logs/jms.log
log4j.appender.myLogger.layout=org.apache.log4j.PatternLayout
log4j.appender.myLogger.layout.conversionPattern=%m%n

请让我知道我哪里出错。

2 个答案:

答案 0 :(得分:0)

如果您希望这些文件转到其他文件,则不应将rootLogger配置为使用您的appender; rootLogger应该转到另一个appender。

此外,您需要一个记录器类别

log4j.category.myLogger=INFO, myAppender

(将您的appender名称更改为myAppender)。

修改

我刚用这个测试过,它按预期工作......

<int:logging-channel-adapter id="loggingChannel" log-full-message="true" logger-name="tapInbound"
    level="INFO" />

log4j.rootLogger = INFO, stdout

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.conversionPattern=%m%n

log4j.category.tapInbound=INFO, myAppender

log4j.appender.myAppender=org.apache.log4j.FileAppender
log4j.appender.myAppender.File=/tmp/jms.log
log4j.appender.myAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.myAppender.layout.conversionPattern=%m%n

答案 1 :(得分:0)

因为您有Log4J配置,如:

log4j.rootLogger = INFO, myLogger

因此所有类别都使用您的自定义附加程序。

对他们来说可能stdout

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