Estoy usando iBatis con spring framework. Quiero registrar el SQL que iBatis ejecuta cuando digo algo así comoiBatis, spring, cómo registrar el sql que se ejecuta?
Employee e = (Employee) getSqlMapClientTemplate().queryForObject("emp_sql", emp);
La línea anterior buscará "emp_sql" id en el archivo sql ibatis que tengo. Y luego ejecute la consulta correspondiente a "emp_sql". Quiero registrar esta consulta
Tengo el siguiente archivo de propiedades 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>
Todavía no puedo conseguir el sql que el ibatis ejecutado. ¿Hay algún problema con la configuración? Debo decir
<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>
¿Tengo que usar p6spy o alguna otra cosa? ¿O hay algo que pueda hacer en la configuración de log4j para obtener los registros iBatis sql?
iBatis o MyBatis (versión 3)? – AngerClown