我使用iBatis的彈簧框架。我要記錄的SQL是iBatis的執行,當我這樣說iBatis的,春天,如何登錄所執行的SQL?
Employee e = (Employee) getSqlMapClientTemplate().queryForObject("emp_sql", emp);
上面一行將尋找在我iBatis的SQL文件「emp_sql」 ID。然後運行對應於「emp_sql」的查詢。我想記錄這個查詢。
我有以下log4j的XML屬性文件。
<appender name="sqlLogAppender" class="org.apache.log4j.DailyRollingFileAppender">
<param name="file" value="/disk1/logs/sql.log"/>
<param name="datePattern" value="'-'yyyy-MM-dd'.txt'"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%m %n"/>
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMin" value="DEBUG"/>
</filter>
</appender>
<logger name="log4j.logger.com.ibatis">
<level value="DEBUG"/>
<appender-ref ref="sqlLogAppender"/>
</logger>
<logger name="log4j.logger.java.sql.Connection">
<level value="DEBUG"/>
<appender-ref ref="sqlLogAppender"/>
</logger>
<logger name="log4j.logger.java.sql.PreparedStatement">
<level value="DEBUG"/>
<appender-ref ref="sqlLogAppender"/>
</logger>
我仍然無法獲得ibatis執行的sql。 有什麼不對的配置? 如果我只是說
<appender name="sqlLogAppender" class="org.apache.log4j.DailyRollingFileAppender">
<param name="file" value="/disk1/logs/sql.log"/>
<param name="datePattern" value="'-'yyyy-MM-dd'.txt'"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%m %n"/>
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMin" value="DEBUG"/>
</filter>
</appender>
<logger name="log4j.logger.java.sql">
<level value="DEBUG"/>
<appender-ref ref="sqlLogAppender"/>
</logger>
我一定要使用P6SPY或其他什麼東西?或者有什麼我可以在log4j配置中獲得iBatis sql日誌?
iBatis或MyBatis(版本3)? – AngerClown 2012-08-09 14:45:51