日志

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(八)中的项目为例进行测试,运行之后控制台的输出如下

springboot mybatis日志 关闭 mybatis打开日志_日志工具