0%

9.3 MyBatis日志信息配置

9.3 MyBatis日志信息配置

使用MyBatis的时候,经常需要输出SQL语句、参数信息、查询结果等日志信息,为此MyBatis也提供了非常简单有效的解决方案。

MyBatis内容的日志功能

MyBatis内置的日志工厂提供日志功能,具体的日志实现有以下几种工具

  • SLF4J
  • Apache Commons Logging
  • Log4j2
  • Log4j
  • JDK logging
    具体选择哪个日志实现工具由MyBatis的内置日志工厂决定。它会使用最先找到的按上文列举的顺序查找)。如果一个都未找到,日志功能就会被禁用。

不少应用服务器的classpath中己经包含Apache Commons Logging,如TomcatWebShpere,所以MyBatis会把它作为具体的日志实现。记住这点非常重要。这将意味着在诸如WebSphere的环境中WebSphere提供了Apache Commons Logging的私有实现,你的Log4j配置将被忽略。
不过,如果你的应用部署在一个包含Apache Commons Logging的环境里,而你又想用其他的日志框架比如Log4j,可以通过在MyBatis的配置文件mybatis-config.xml里面添加一项setting(配置)来选择一个不同的日志实现。这也是MyBatis推荐的做法

使用Log4j

在mybatis的配置文件中添加如下配置:

1
2
3
4
5
6
7
8
9
10
11
12
<?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">
<!-- XML 配置文件包含对 MyBatis 系统的核心设置 -->
<configuration>
......
<settings>
<setting name="logImpl" value="LOG4J"/>
</settings>
......
</configuration>

这样就是告诉MyBatis当前项目的日志实现使用Log4j,Log4j的配置信息就会起作用。

logImpl属性值

logImpl可选的值有:SLF4JLOG4JLOG4J2JDK_LOGINGCOMMONS_LOGINGSTDOUT_LOGGINGNO_LOGGING或者是实现了接口org.apache.ibatis.logging.Log的类的完全限定类名,并且这个类的构造函数需要以一个字符串(String类型)为参数。具体可以参考org.apache.ibatis.logging.slf4j.Slf4jImpl.java的实现。

下载log4j的jar包

MyBatis可以对包、类、命名空间和全限定的语句记录日志.
具体怎么做,视使用的日志框架而定,这里以Log4为例。配置日志功能非常简单首先增加依赖的jar包,如log4j.jar,log4j.jar可以自己去官网下载.

添加log4j的配置文件

添加配置文件,有log4j.propertieslog4j.xml两种,下面分别讲解两种配置文件

9.3.1 log4j.properties配置日志

待续..写起来麻烦,不如翻书简单.

原文链接: 9.3 MyBatis日志信息配置