我正在尝试使用log4j在DB中记录一些细节。我已经将记录通道适配器配置为电线敲击。
所需的记录器是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>
您已经配置了一个窃听通道,但您还需要将其放在某个interceptor标签中,以便要拦截的通道。不确定您是否在帖子中缺少它。以下是一个例子。
<integration:channel id="mydbchannel-to-intercept">
<integration:interceptors>
<int:wire-tap channel="logChannel"/>
</integration:interceptors>
</integration:channel>