使用Log4jdbc-log4j2监听MyBatis中运行的SQL和Connection
时间:2022-03-10 17:17
引言: 在项目中使用了MyBatis,一个比较苦恼的问题是无法看到执行的SQL的具体情况,所以,就找到了Log4jdbc-log4j2。这个是一个基于jdbc层面的监听工具,可以监听对于数据库的主要操作,从而完美的查看到其中执行的操作。
1. Log4jdbc-log4j2版本选择
- <dependency>
<groupId>org.bgee.log4jdbc-log4j2</groupId>
<artifactId>log4jdbc-log4j2-jdbcXX</artifactId>
<version>1.16</version>
</dependency>3. 依赖包的安装
a. 如有使用log4j, 则需要log4j.-core.jar和log4j-api.jar
b. 如使用slf4j,则需要 xxx.driverClass=<strong>net.sf.log4jdbc.sql.jdbcapi.DriverSpy</strong> ------ 数据库驱动程序 ............................ xxxx.jdbcUrl = <strong>jdbc:log4</strong>\:oracle\:thin\:@192.168.1.20\:1521\:orcl -------------- 数据库连接URL 说明:其中加粗的内容,表示其是被修改后的新内容。
原有的URL:
! Log all JDBC calls except for ResultSet calls log4j.logger.jdbc.audit=DEBUG,jdbc log4j.additivity.jdbc.audit=false ! Log only JDBC calls to ResultSet objects log4j.logger.jdbc.resultset=DEBUG,jdbc log4j.additivity.jdbc.resultset=false ! Log only the SQL that is executed. log4j.logger.jdbc.sqlonly=DEBUG,sql log4j.additivity.jdbc.sqlonly=false ! Log timing information about the SQL that is executed. log4j.logger.jdbc.sqltiming=DEBUG,sqltiming log4j.additivity.jdbc.sqltiming=false ! Log connection open/close events and connection number dump log4j.logger.jdbc.connection=FATAL,connection log4j.additivity.jdbc.connection=false ! the appender used for the JDBC API layer call logging above, sql only log4j.appender.sql=org.apache.log4j.FileAppender log4j.appender.sql.File=./logs/sql.log log4j.appender.sql.Append=false log4j.appender.sql.layout=org.apache.log4j.PatternLayout log4j.appender.sql.layout.ConversionPattern=-----> %d{yyyy-MM-dd HH:mm:ss.SSS} %m%n%n ! the appender used for the JDBC API layer call logging above, sql timing log4j.appender.sqltiming=org.apache.log4j.FileAppender log4j.appender.sqltiming.File=./logs/sqltiming.log log4j.appender.sqltiming.Append=false log4j.appender.sqltiming.layout=org.apache.log4j.PatternLayout log4j.appender.sqltiming.layout.ConversionPattern=-----> %d{yyyy-MM-dd HH:mm:ss.SSS} %m%n%n ! the appender used for the JDBC API layer call logging above log4j.appender.jdbc=org.apache.log4j.FileAppender log4j.appender.jdbc.File=./logs/jdbc.log log4j.appender.jdbc.Append=false log4j.appender.jdbc.layout=org.apache.log4j.PatternLayout log4j.appender.jdbc.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} %m%n ! the appender used for the JDBC Connection open and close events log4j.appender.connection=org.apache.log4j.FileAppender log4j.appender.connection.File=./logs/connection.log log4j.appender.connection.Append=false log4j.appender.connection.layout=org.apache.log4j.PatternLayout log4j.appender.connection.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} %m%n
总结:
经过一番折腾之后呢,终于可以在系统看到数据库中各类的操作了,数据库的各种行为尽在眼底........
使用Log4jdbc-log4j2监听MyBatis中运行的SQL和Connection,布布扣,bubuko.com