日志
Mybatis 的内置日志工厂提供日志功能,内置日志工厂将日志交给以下其中一种工具作代理:
- SLF4J
- Apache Commons Logging
- Log4j 2
- Log4j
- JDK logging
MyBatis 内置日志工厂基于运行时自省机制选择合适的日志工具。它会使用第一个查找得到的工具(按上文列举的顺序查找)。如果一个都未找到,日志功能就会被禁用。
不少应用服务器(如 Tomcat 和 WebShpere)的类路径中已经包含 Commons Logging,所以在这种配置环境下的 MyBatis 会把它作为日志工具,记住这点非常重要。如果要向指定具体要用的日志工具,需要在conf.xml里进行配置。
日志配置
你可以对包、映射类的全限定名、命名空间或全限定语句名开启日志功能来查看 MyBatis 的日志语句。具体怎么做,由使用的日志工具决定,这里以 Log4J 为例。
步骤1:添加LOG4J的jar包
因为我们使用的是 Log4J,就要确保它的 jar 包在应用中是可用的。要启用 Log4J,只要将 jar 包添加到应用的类路径中即可。Log4J 的 jar 包可以在上面的链接中下载。
对于 web 应用或企业级应用,则需要将 log4j.jar 添加到 WEB-INF/lib 目录下;对于独立应用,可以将它添加到JVM 的 -classpath 启动参数中。根据我们的项目,我们只需在pom.xml里引入jar包即可,如下:
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
步骤二:添加配置文件log4j.properties
在项目的资源目录下,添加文件log4j.properties,内容如下
# Global logging configuration
log4j.rootLogger=DEBUG, stdout
# MyBatis logging configuration
log4j.logger.org.mybatis.example.BlogMapper=TRACE
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
日志的级别从低到高可大致分为4种:DEBUG、INFO、WARN、ERROR
log4j.rootLogger=DEBUG, stdout
表明日志级别为DEBUG,日志输出方式为控制台输出
步骤三:配置conf.xml文件
在conf.xml文件里添加一项setting来指定日志工具
<configuration>
<settings>
<!--开启日志,并指定使用的具体日志-->
<setting name="logImpl" value="LOG4J"/>
</settings>
</configuration>
添加如上配置后,其会自动与资源文件log4j.properties匹配
测试结果
以Mybatis(八)中的项目为例进行测试,运行之后控制台的输出如下