如何配置JDBC日志
在检查Spring和SpringMVC配置冲突导致事务无法开启和反射调用事务方法导致事务失效引起的异常中,怎么查原因都查不到,最后在同事的介绍下,帮我配置了下数据库日志,可以看到事务是否真的被开启了
用到的组件
打印日志用的是 SLF4J 和 jdbcdslog 其Maven配置如下
1 | <!--slf4j--> |
Slf4j的配置
配置文件为logback.xml 由于不是太熟悉,我采用的是以下配置
1 | <?xml version="1.0" encoding="UTF-8"?> |
事务状态和非事务状态的日志
这样在创建Sql的时候就可以看到事务日志和非事务日志的区别,由于我DAL层使用的是MyBatis,看到的是以下日志
为了方便追踪最好给日志加上ID,参考这里给日志添加TraceID
事务状态
1 | [2016-07-28 23:17:20][qtp151784151-26][DEBUG] org.mybatis.spring.SqlSessionUtils 120 -- [] Registering transaction synchronization for SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@2ac108c2] |
非事务状态
1 | [2016-07-28 23:20:12][qtp151784151-25][DEBUG] org.mybatis.spring.SqlSessionUtils 140 -- [] SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@51bdc159] was not registered for synchronization because synchronization is not active |