Интеграция Spring: ведение журнала с использованием адаптера канала ведения журнала + log4j

Я пытаюсь зарегистрировать некоторые детали в БД, используя log4j. Я настроил адаптер канала регистрации в качестве прослушивателя.

Требуемый регистратор - dbappender, но он не работает.

spring-integration.xml

<int:wire-tap channel="logChannel"/>
<int:logging-channel-adapter id="logChannel" level="INFO" logger-name="AUDIT_the.details" />

log4j.xml

<logger name="AUDIT_the.details">
        <level value="INFO" />
        <appender-ref ref="asyncAppender" />
    </logger>

    <appender name="asyncAppender" class="org.apache.log4j.AsyncAppender">
        <param name="blocking" value="false" />
        <appender-ref ref="dbAppender" />
    </appender>

    <appender name="dbAppender" class="LoggerTemplate">
        <param name="driver" value="oracle.jdbc.OracleDriver" />
        <param name="sql"
            value="SQL_QUERY" />
        <param name="Threshold" value="info" />
    </appender>

person Rahul    schedule 08.05.2015    source источник
comment
Ну, если вы говорите, что это не работает, вы должны хотя бы указать, где оно находится. Вы не пробовали просто войти в консоль? Или как это работает с аппендером direct в обход AsyncAppender ? Недостаточно информации, чтобы решить проблему... И... Что такое LoggerTemplate?   -  person Artem Bilan    schedule 11.05.2015


Ответы (1)


Вы настроили канал прослушивания, но вам также нужно поместить его в какой-либо тег перехватчика для канала, который вы хотите перехватить. Не уверен, что вы сделали это, поскольку он отсутствует в вашем сообщении. Ниже приведен один пример.

<integration:channel id="mydbchannel-to-intercept">
    <integration:interceptors>
        <int:wire-tap channel="logChannel"/>
    </integration:interceptors>
</integration:channel>
person Sarfaraz Khan    schedule 17.06.2015