听说微信搜《Java鱼仔》会让技术提高更快哦
(一)关于Mybatis日志
日志作为定位问题最重要的依据之一,在任何系统下都是不可或缺的,Mybatis 通过使用内置的日志工厂提供日志功能。在前面讲设置的时候,我们已经看到了Mybatis可以配置以下几种日志工厂:
网络异常,图片无法展示
|
可选的值有:SLF4J、LOG4J、LOG4J2、JDK_LOGGING、COMMONS_LOGGING、STDOUT_LOGGING、NO_LOGGING,或者是实现了 org.apache.ibatis.logging.Log 接口,且构造方法以字符串为参数的类完全限定名。
(二)使用STDOUT_LOGGING输出标准日志
我们先使用标准的日志输出功能,首先在Mybatis-config.xml
<settings><settingname="logImpl"value="STDOUT_LOGGING"/></settings>
我们跑一段简单的sql来看一下日志的输出
网络异常,图片无法展示
|
在日志中可以清楚的看到JDBC的连接信息,执行的sql,获取到的结果等信息。
(三)使用Log4J日志
log4J日志相信大家都不陌生,至少在我工作的这段经历里,日志框架就只用了log4j,还是一样的步骤,首先在设置中将logImpl的值设置为LOG4J
<settings><settingname="logImpl"value="LOG4J"/></settings>
Mybatis的系统内部是不包含这些外部日志框架的,因此需要引入依赖:
导入log4j的依赖
<dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency>
接着配置log4j,新建一个log4j.properties
# 全局日志配置 log4j.rootLogger=ERROR, stdout,logfile # MyBatis 日志配置 log4j.logger.com.javayz.mapper.UserMapper=TRACE # 控制台输出 log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n ### 把日志信息输出到文件:jbit.log ### log4j.appender.logfile=org.apache.log4j.FileAppender log4j.appender.logfile.File=jbit.log log4j.appender.logfile.layout=org.apache.log4j.PatternLayout log4j.appender.logfile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %F %p %m%n
接着配置log4j,新建一个log4j.properties
# 全局日志配置 log4j.rootLogger=ERROR, stdout,logfile # MyBatis 日志配置 log4j.logger.com.javayz.mapper.UserMapper=TRACE # 控制台输出 log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n ### 把日志信息输出到文件:jbit.log ### log4j.appender.logfile=org.apache.log4j.FileAppender log4j.appender.logfile.File=jbit.log log4j.appender.logfile.layout=org.apache.log4j.PatternLayout log4j.appender.logfile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %F %p %m%n
上面的这段配置将详细打印javayz.mapper.UserMapper的日志,对于其他的部分只打印错误信息,同时把日志写入jbit.log中。
网络异常,图片无法展示
|
通过下面的配置只打印部分语句的日志:
log4j.logger.com.javayz.mapper.UserMapper.getUserById=TRACE
也可以打印一整组映射器的日志
log4j.logger.com.javayz.mapper=TRACE
SQL 语句将会在 DEBUG 日志级别下记录,因此只想查看 SQL 语句,而忽略返回的结果集,可以将日志等级设置为DEBUG:
log4j.logger.com.javayz.mapper=DEBUG
网络异常,图片无法展示
|
至于更多有关log4j的内容,在Mybatis的学习中就不做过多介绍了。