Я использую iBatis с фреймворком spring. Я хочу записать sql, который выполняется iBatis, когда я говорю что-то вроде
Employee e = (Employee) getSqlMapClientTemplate().queryForObject("emp_sql", emp);
Вышеупомянутая строка будет искать идентификатор "emp_sql" в файле sql ibatis, который у меня есть. А затем запустите запрос, соответствующий "emp_sql". Я хочу зарегистрировать этот запрос.
У меня есть следующий файл свойств файла 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>
Я все еще не могу получить sql, который выполнил ibatis. Что-то не так с конфигурацией? Должен ли я просто сказать
<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?