当前位置: 代码迷 >> SQL >> 怎么控制Mybatis的SQL日志输出
  详细解决方案

怎么控制Mybatis的SQL日志输出

热度:75   发布时间:2016-05-05 11:05:04.0
如何控制Mybatis的SQL日志输出
使用环境:Mybatis_3.2.8 + Log4j2_2.1
首先要说明的是:
  • Mybatis是用Mapper类的全路径名,作为logger的名称的。
  • Mybatis中,打印SQL语句的日志级别是DEBUG,而打印SQL执行结果集的日志级别是TRACE。(因为有些SQL可能语句简单,但是结果集很多,分开级别,有利于用户控制输出。)

记住这两点,对控制Mybatis的SQL日志输出很重要。

比如,我们的应用是:
com.test.app
而mapper类所在的路径为:
com.test.app.dao
则我们可以分别控制应用的业务日志和SQL日志的输出。
如下的Log4j2.xml将输出所有业务日志,以及SQL语句日志
引用

<Loggers>
    <Logger name="com.test.app.dao" additivity="false" level="DEBUG">
        <AppenderRef ref="sql_log"/>
        <AppenderRef ref="Console"/>
    </Logger>
    <Logger name="com.test.app" additivity="false" level="TRACE">
        <AppenderRef ref="biz_debug"/>
        <AppenderRef ref="Console"/>
    </Logger>
</Loggers>


如下的Log4j2.xml将输出所有业务日志,以及SQL语句日志,SQL语句执行结果日志
引用

<Loggers>
    <Logger name="com.test.app.dao" additivity="false" level="TRACE">
        <AppenderRef ref="sql_log"/>
        <AppenderRef ref="Console"/>
    </Logger>
    <Logger name="com.test.app" additivity="false" level="TRACE">
        <AppenderRef ref="biz_debug"/>
        <AppenderRef ref="Console"/>
    </Logger>
</Loggers>
  相关解决方案