MyBatis之控制台输出sql-yellowcong

来源:互联网 发布:hbuilder 商城app源码 编辑:程序博客网 时间:2024/06/04 19:09

MyBatis控制台输出Sql的方式有两种,一种是自带的格式化输出这种方式对于Mybatis的版本有要求,第二种是,自己手动添加日志规则的打印方式,这种更加的灵活方便。

第一种方法:通过Mybatis自带的

Mybatis提供的标准日志输出,是在3.2.x版本有,我测试了低版本,就报错

<!-- mybatis --><dependency>    <groupId>org.mybatis</groupId>    <artifactId>mybatis</artifactId>    <version>3.2.6</version></dependency>

Mybatis标准化输出打印出来的效果
这里写图片描述

配置mybatis-config.xml

<?xml version="1.0" encoding="utf-8"?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration>  <settings>             <setting name="defaultExecutorType" value="REUSE" />     <!-- 配置控制台输出 -->     <setting name="logImpl" value="STDOUT_LOGGING"/>    </settings>  <typeAliases>  </typeAliases></configuration>

第二种方式:通过配置Log4j

1、配置log4j.properties

通过只配置监听所有日志的方式,查看打印sql的日志文件是哪一个类

#测试级别是DEBUG#日志 级别 DEBUG -->INFO -->WARN -->ERRORlog4j.rootLogger=DEBUG,Console#Console#日志的输出格式log4j.appender.Console=org.apache.log4j.ConsoleAppenderlog4j.appender.Console.layout=org.apache.log4j.PatternLayoutlog4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n

2、运行测试类,查看日志信息

分析日志,我们发现打印sql语句的是druid.sql.Statement这个类,而且多了一些不需要的spring的日志
这里写图片描述

3、修改log4j.properties配置

1、提升spring日志的打印等级
2、添加druid.sql.Statement 的监控,去掉druid.sql包下面的其他类的监控

#测试级别是Warn#日志 级别 DEBUG -->INFO -->WARN -->ERRORlog4j.rootLogger=DEBUG,Console#Console#日志的输出格式log4j.appender.Console=org.apache.log4j.ConsoleAppenderlog4j.appender.Console.layout=org.apache.log4j.PatternLayoutlog4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n#指定Spring的日志级别是WARNlog4j.logger.org.springframework=WARN#指定监测druid.sql.Statement 的日志情况#只监听指定类 #INFO 表示日志的级别#DRUID 是这个监听的类的日志配置的名称,用于下面 指定日志格式用#这种是监听druid.sql 包下面的所有类log4j.logger.druid.sql=INFO,DRUID#控制台输出log4j.appender.DRUID=org.apache.log4j.ConsoleAppender#指定输出的样式log4j.appender.DRUID.layout=org.apache.log4j.PatternLayoutlog4j.appender.DRUID.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n

日志结果,大家会发现,没有spring的那些日志输出信息了,只有durid.sql包下面的日志了
这里写图片描述

只需要druid.sql.Statement的日志

修改 日志配置文件

指定新的日志规则

下面这种方式是,重新建立了一个日志的规则,用来专门处理Statement这个类

#测试级别是Warn#日志 级别 DEBUG -->INFO -->WARN -->ERRORlog4j.rootLogger=DEBUG,Console#Console#日志的输出格式log4j.appender.Console=org.apache.log4j.ConsoleAppenderlog4j.appender.Console.layout=org.apache.log4j.PatternLayoutlog4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n#指定Spring的日志级别是WARNlog4j.logger.org.springframework=WARN#日志级别是WARN才可以显示log4j.logger.druid.sql.Connection=WARNlog4j.logger.druid.sql.ResultSet=WARN#指定监测druid.sql.Statement 的日志情况#只监听指定类 #INFO 表示日志的级别#DRUID 是这个监听的类的日志配置的名称,用于下面 指定日志格式用log4j.logger.druid.sql.Statement=DEBUG,DRUID#控制台输出log4j.appender.DRUID=org.apache.log4j.ConsoleAppender#指定输出的样式log4j.appender.DRUID.layout=org.apache.log4j.PatternLayoutlog4j.appender.DRUID.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n

大家再看一下日志文件,发现只剩下Statement 的日志文件了
这里写图片描述

直接使用原来样式的方式

可以将上面的日志文件改写一下,使用原来的日志输出方式

#测试级别是Warn#日志 级别 DEBUG -->INFO -->WARN -->ERRORlog4j.rootLogger=DEBUG,Console#Console#日志的输出格式log4j.appender.Console=org.apache.log4j.ConsoleAppenderlog4j.appender.Console.layout=org.apache.log4j.PatternLayoutlog4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n#指定Spring的日志级别是WARNlog4j.logger.org.springframework=WARN#日志级别是WARN才可以显示log4j.logger.druid.sql.Connection=WARNlog4j.logger.druid.sql.ResultSet=WARN#指定监测druid.sql.Statement 的Debug 级别#使用上面配置的日志输出方式log4j.logger.druid.sql.Statement=DEBUG

发现只剩下Statement的日志文件了,但问题是好像日志比原来更少了
这里写图片描述

原创粉丝点击