spring 集成窃听和记录通道适配器记录问题

spring integration wire-tap and logging-channel-adapter logging issue

我正在尝试添加窃听器来拦截通道,但它没有使用我的 logback 配置,而是使用 org.apache.commons.logging.impl.Jdk14Logger。 如何告诉 LoggingHandler.messageLogger 使用 lmy logback 配置?

<int:channel id="testChannel">
    <int:interceptors>
        <int:wire-tap channel="loggerChannel"/>
    </int:interceptors>
</int:channel>

<int:logging-channel-adapter id="loggerChannel" level="DEBUG"/>

我的 logback 定义了以下配置

<logger name="org.springframework" level="DEBUG"/>
<logger name="org.springframework.integration" level="DEBUG"/>
<logger name="org.springframework.integration.handler.LoggingHandler" level="DEBUG"/>


<root level="DEBUG">
    <appender-ref ref="STDOUT"/>
    <appender-ref ref="ROLLING"/>
</root>

由于历史原因,Spring在内部使用commons-logging;您可以使用 slf4j 连接 logback。

参见note in the Spring Reference

这里是another howto

基本上您需要从 spring 部门中排除 commons-logging 并添加 jcl-over-slf4j.