您的位置:首页 > 博客中心 > 数据库 >

使用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

热门排行

今日推荐

热门手游