如何控制Mybatis的SQL日志输出

 我来答
zxh4567
2014-12-31 · TA获得超过6.1万个赞
知道大有可为答主
回答量:2.2万
采纳率:83%
帮助的人:1.2亿
展开全部
  使用环境: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>
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式