CXC0 2020-04-10
内置日志工厂将会把日志工作委托给下面的实现之一:
SLF4J
Apache Commons Logging
Log4j 2
Log4j
JDK logging
MyBatis 内置日志工厂会基于运行时检测信息选择日志委托实现。
它会(按上面罗列的顺序)使用第一个查找到的实现。
当没有找到这些实现时,将会禁用日志功能。
你可以通过在 MyBatis 配置文件 mybatis-config.xml 里面添加一项 setting 来选择其它日志实现。
<configuration>
<settings>
...
<setting name="logImpl" value="LOG4J"/>
...
</settings>
</configuration>
2?日志配置
步骤 1:添加 Log4J 的 jar 包
由于我们使用的是 Log4J,我们要确保它的 jar 包可以被应用使用。
为此,需要将 jar 包添加到应用的类路径中。
如果使用 Maven 来构建项目,则需将下面的依赖代码置于 pom.xml 文件中:
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
步骤 2:配置 Log4J
配置 Log4J 比较简单。假设你需要记录这个映射器的日志:
package org.mybatis.example.mapper;
public interface BlogMapper {
Blog selectBlog(int id);
}
在应用的类路径中创建一个名为 log4j.properties 的文件,文件的具体内容如下:
log4j.rootLogger=ERROR, stdout
log4j.logger.org.mybatis.example=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
在类中按如下方式使用,例如:
Logger logger = Logger.getLogger(Main.class);
logger.info("记录用于提供信息的事件");
logger.info("记录一般调试事件");
Log4j 日志级别
级别
描述
OFF
不记录任何事件
FATAL
记录阻止应用程序继续的严重错误
ERROR
记录应用程序中的错误
WARN
记录可能导致错误的事件
INFO
记录用于提供信息的事件
DEBUG
记录一般调试事件
TRACE
记录细粒度的调试消息
ALL
记录所有事件