参考官方文档【传送门】。
Mybatis 通过使用内置的日志工厂提供日志功能,内置日志工厂将会把日志工作委托给下面的实现之一:
-
SLF4J
-
Apache Commons Logging
-
Log4j
-
Log4j 2
-
JDK logging
Mybatis 会按上面罗列的顺序使用第一个查找到的实现,当没有找到这些实现时,将会禁用日志功能。
因为不少应用服务器(如 Tomcat 和 WebShpere)的类路径中已经包含 Commons Logging,所以此时 MyBatis 会把 Commons Logging 作为日志工具。这个时候如果想使用其它日志实现,可以通过在 MyBatis 配置文件 mybatis-config.xml
里面添加一项 setting 来选择其它日志实现。
1.2.1 Log4j 的日志级别
| 级别 | 含义 |
| — | — |
| DEBUG | 输出调试信息;指出细粒度信息事件对调试应用程序是非常有帮助的 |
| INFO | 输出提示信息;消息在粗粒度级别上突出强调应用程序的运行过程 |
| WARN | 输出警告信息;表明会出现潜在错误的情形 |
| ERROR | 输出错误信息;指出虽然发生错误事件,但仍然不影响系统的继续运行 |
| FATAL | 输出致命错误;指出每个严重的错误事件将会导致应用程序的退出 |
| ALL level | 打开所有日志记录开关;是最低等
《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》
【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容开源分享
级的,用于打开所有日志记录 |
| OFF level | 关闭所有日志记录开关;是最高等级的,用于关闭所有日志记录 |
按照范围从小到大排序:OFF level > FATAL > ERROR > WARN > INFO > DEBUG > ALL level
;范围大的会包含范围小的,例如若日志设置为 INFO 级别的话则 FATAL、ERROR、WARN、INFO 的日志开关都是打开的,而 DEBUG 的日志开关将是关闭的。
Log4j 建议只使用四个级别,优先级从高到低分别是 ERROR、WARN、INFO、DEBUG。
1.2.2 日志配置步骤 1:添加 Log4J 的 jar 包
在 Maven 的 .pom 文件中添加依赖
log4j
log4j
1.2.17
1.2.3 日志配置步骤 2:日志配置文件编写
在 resources 中添加配置文件 log4j.properties
,加入以下配置内容:
#将等级为DEBUG的日志信息输出到console和file这两个目的地,console和file的定义在下面的代码
log4j.rootLogger=DEBUG,console,file
#控制台输出的相关设置
log4j.appender.console = org.apache.log4j.ConsoleAppender
log4j.appender.console.Target = System.out
log4j.appender.console.Threshold=DEBUG
log4j.appender.console.layout = org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=[%c]-%m%n
#文件输出的相关设置
log4j.appender.file = org.apache.log4j.RollingFileAppender
log4j.appender.file.File=./log/sharm.log
log4j.appender.file.MaxFileSize=10mb
log4j.appender.file.Threshold=DEBUG
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=[%p][%d{yy-MM-dd}][%c]%m%n
#日志输出级别
log4j.logger.org.mybatis=DEBUG
log4j.logger.java.sql=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.ResultSet=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
1.2.4 日志配置步骤 3:setting 设置日志实现
1.2.5 日志配置步骤 4:在程序中使用 log4j 进行输出
// 注意导包:org.apache.log4j.Logger
// 固定写法
static Logger logger = Logger.getLogger(UserTest.class);
@Test
public void testSelectUser(){
logger.info(“info:进入selectUser方法”);
logger.debug(“debug:进入selectUser方法”);
logger.error(“error: 进入selectUser方法”);
SqlSession session = MyBatisUtils.getSession();
UserMapper mapper = session.getMapper(UserMapper.class);
List users = mapper.selectUser();