日志
Mybatis 通过使用内置的日志工厂提供日志功能。内置日志工厂将会把日志工作委托给下面的实现之一:
- SLF4J
- Apache Commons Logging
- Log4j 2
- Log4j
- JDK logging
通过 XML 配置中的 setting 可以选择要使用哪个日志实现
STDOUT_LOGGING
STDOUT_LOGGING 直接翻译就是标准输出日志,这是 MyBatis 自带的一个日志系统,可以实现比较基础的日志功能
想要使用只需要在 XML 配置中的 setting 中指定即可
<settings>
<setting name="logImpl" value="STDOUT_LOGGING"/>
</settings>
然后就能在运行时看到日志,例如:
Opening JDBC Connection # 打开JDBC连接
Created connection 1477657879. # 创建编号为1477657879的连接
Setting autocommit to false on JDBC Connection [com.mysql.jdbc.JDBC4Connection@58134517] # 设置JDBC自动提交为false
==> Preparing: select * from user where id = ? # 执行的sql
==> Parameters: 1(Integer) # 参数
<== Columns: id, name, password # 返回的字段
<== Row: 1, user1, 123 # 返回的值
<== Total: 1 # 返回条数
User{id=1, name='user1', password='123'}
Resetting autocommit to true on JDBC Connection [com.mysql.jdbc.JDBC4Connection@58134517] # 设置JDBC自动提交为true
Closing JDBC Connection [com.mysql.jdbc.JDBC4Connection@58134517] #关闭JDBC连接
Returned connection 1477657879 to pool. # 将连接返回连接池
LOG4J
Log4j是 Apache 的一个开源项目,相较于STDOUT_LOGGING可以实现更加高级的日志功能。
优点:
- 可以将日志输出到控制台、文件等多个位置
- 可以自定义日志的级别,选择性输出
- 可以设置日志的输出格式
- 通过配置文件进行设置
导入依赖
<!-- log4j -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
maven 仓库里有两个 Log4j,它们是不一样的:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-axDMqr7X-1645510913398)(MyBatis基础.assets/image-20210924104551027.png)]
我们使用的是Log4j,至于Log4j Core 是 Log4j 2.0以上的版本,它们需要的依赖不同,配置时的操作也有很大区别,在 MyBatis 中 Log4j Core 对应的日志系统是 LOG4J2
XML 配置
同样的,在 setting 中设置日志系统为 LOG4J
<settings>
<setting name="logImpl" value="LOG4J"/>
</settings>
Log4j 配置文件
通过配置文件可以设置日志输出位置、输出格式、输出级别等等内容,以下为一个简单的例子
# 全局日志配置
# 设置最低输出级别,配置名称
log4j.rootLogger=DEBUG, stdout, file
# 控制台输出
log4j.appender.stdout=org.apache.log4j.ConsoleAppender # 设置输出目的地为控制台
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout # 设置输出布局为指定模式
log4j.appender.stdout.layout.ConversionPattern=[%p]%d %m%n # 指定输出日志格式
#文件输出
log4j.appender.file = org.apache.log4j.FileAppender # 设置输出目的地为文件
log4j.appender.file.layout = org.apache.log4j.SimpleLayout # 设置输出布局为简单布局
log4j.appender.file.File = D:/log/logging.log # 设置输出文件路径
log4j.appender.file.Append = false # 设置输出日志覆盖旧日志
配置完成后,就可以输出日志了