bjghzly 发表于 2016-11-25 08:31:19

如何控制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>
页: [1]
查看完整版本: 如何控制Mybatis的SQL日志输出