Lav*_*Lav 6 logging spring log4j ibatis mybatis
在我的项目中我有
<bean id="ABCSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
  <property name="dataSource" ref="ABCDataSource" />
  <property name="mapperLocations">
      <list>
        <value>classpath:com/myco/dao/XYZMapper.xml</value>
       </list>
  </property>
<bean>
和
log4j.logger.java.sql.Connection=debug, stdout, abclog
log4j.logger.java.sql.PreparedStatement=debug, stdout, abclog
log4j.logger.java.sql=debug, stdout, abclog
log4j.logger.org.mybatis=debug, stdout, abclog
log4j.logger.org.apache.ibatis=debug, stdout, abclog
当我在日志中运行applicartion时,我没有看到SQL查询想知道我错过了什么
看到这篇文章如何为Mybatis配置log4j以打印我的SQL 建议更改mybatis类配置但不确定如何处理spring SqlSessionFactoryBean
You can add logging for Mybatis via it's mybatis-config.xml.
Add log4j like so:
mybatis-config.xml
<configuration>
  <settings>
    ...
    <setting name="logImpl" value="LOG4J"/>
    ...
  </settings>
</configuration>
Then in your log4j.properties, add the class that you'd like to log:
log4j.logger.org.mybatis.example.MyMapper=TRACE
SQL statements are logged at the DEBUG level, so set output to DEBUG:
log4j.logger.org.mybatis.example=DEBUG
For more details, see the documentation.
从如何配置Mybatis的logback以打印我的SQL的答案引用,我不确定这是否适合您.它提供了用于日志记录的Spring配置.这种方法对我有用.
使用完全限定的映射器名称记录特定mybatis映射器的SQL语句设置DEBUG(TRACE以查看查询参数和结果)级别
<logger name="com.mycompany.myapp.mapper.MyMapper" level="DEBUG"/>
如果它们位于同一个包中,您可以记录所有映射器中的所有SQL语句
<logger name="com.mycompany.myapp.mapper" level="DEBUG"/>
如果问题仍然存在,请试一试.祝好运!
另一个快捷方式是在 application.properties 文件中将 mybatis 映射器的调试级别设置为 true:
logging.level.<packageName>.mapper=DEBUG
在控制台或日志文件中打印的示例日志:
2020-03-03 09:41:27.057 DEBUG 10495 --- [io-50006-exec-1] c.f.t.d.m.M.countByExample               : ==>  Preparing: SELECT count(*) FROM MessageRecivers WHERE ((ReciverId = ? and ReadStats = ? and ReciverMessageFolder <> ?)) 
2020-03-03 09:41:27.066 DEBUG 10495 --- [io-50006-exec-1] c.f.t.d.m.M.countByExample               : ==> Parameters: 58(Long), 0(Short), 1(Short)
2020-03-03 09:41:27.473 DEBUG 10495 --- [io-50006-exec-1] c.f.t.d.m.M.countByExample               : <==      Total: 1
用最简单的方式配置进行测试并在日志中查看。然后自定义输出(例如文件、级别)。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration PUBLIC "-//log4j/log4j Configuration//EN" 
                                     "log4j.dtd" >
<log4j:configuration>
  <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
    <layout class="org.apache.log4j.PatternLayout">
      <param name="ConversionPattern" value="%d %-5p (%c.java:%L).%M - %m%n"/>
    </layout>
  </appender>
  <root>
    <priority value="TRACE" />
    <appender-ref ref="STDOUT"/>
  </root>
</log4j:configuration>
| 归档时间: | 
 | 
| 查看次数: | 38658 次 | 
| 最近记录: |