2015-05-08 89 views
1

我想使用log4j在數據庫中記錄一些細節。我已將日誌記錄通道適配器配置爲導線。春季集成:使用日誌記錄通道適配器+日誌log4j

所需的記錄器是dbappender,但同樣不起作用。

彈簧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> 
+0

那麼,如果你說,它不起作用,你至少應該指出它在哪裏。你有沒有試過簡單的日誌記錄到控制檯?或者它如何與'直接'appender一起工作,繞過'AsyncAppender'?沒有足夠的信息來找出問題...並且...什麼是LoggerTemplate? –

回答

0

你已經配置了一個竊聽信道,但你也需要把在一些攔截器標籤的通道你想攔截。不知道你是否已經完成了你的帖子中的缺失。下面是一個例子。

<integration:channel id="mydbchannel-to-intercept"> 
    <integration:interceptors> 
     <int:wire-tap channel="logChannel"/> 
    </integration:interceptors> 
</integration:channel>