Sto usando iBatis con struttura a molla. Voglio registrare l'SQL che iBatis eseguito quando dico qualcosa comeiBatis, primavera, come registrare lo sql che viene eseguito?
Employee e = (Employee) getSqlMapClientTemplate().queryForObject("emp_sql", emp);
La linea di cui sopra cercherà id "emp_sql" nel file sql ibatis che ho. E quindi eseguire la query corrispondente a "emp_sql". Voglio registrare questa query.
Ho il seguente file di proprietà xml log4j.
<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>
Non riesco ancora a ottenere lo sql eseguito da ibatis. C'è qualcosa di sbagliato nella configurazione? Devo solo dire
<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>
Devo usare p6spy o qualcos'altro? O c'è qualcosa che posso fare nella configurazione di log4j per ottenere i registri di iBatis sql?
iBatis o MyBatis (versione 3)? – AngerClown