引言
在上一节《淘东电商项目(18) -全局异常捕获》,主要讲解如何捕获全局异常,并使用日志打印。
代码已提交至Github(版本号:
01534baa821a7c46e363eaa8552f4dde4d92cd9b
),有兴趣的同学可以下载来看看:https://github.com/ylw-github/taodong-shop
本文主要简单的讲解下项目中的日志框架,「淘东电商项目」使用的是Slf4j
日志框架。
本文目录结构:
1. Slf4j日志
1.1 Slf4j简介
之前,我们在项目里引入了依赖:
其实里面已经默认集成了Slf4j
框架了,所以我们直接使用就可以了,使用方式如下:
private static Logger log = LoggerFactory.getLogger(GlobalExceptionHandler.class);
后来我们引入了Lombok
框架,简化了很多的代码,最后直接注解声明就可以使用了:
1.2 Slf4j简单使用
新建一个单元测试类:
import lombok.extern.slf4j.Slf4j; import org.junit.Test; @Slf4j public class TestLog { @Test public void testlog() { log.debug("=====>debug"); log.error("=====>error"); log.info("=====>info"); log.warn("=====>warn"); } }
运行:
2. 打印MyBatis语句的SQL语句
在项目中,我们调用MyBatis
时,不能打印查询的SQL
语句,这是因为Mybatis
默认使用的日志框架并不是Slf4j
,所以要在yml配置文件指定Mybatis
使用Slf4j
:
mybatis: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
同时需要声明日志打印的范围,我声明为debug
,一般生产环境建议改回info
(格式:logging.level+mapper包名+日志类型):
logging: level: com.ylw.service.member.mapper: debug
启动项目,可以看到日志,使用了Slf4j
作为MyBatis的日志框架:
调用接口,Mybatis查询数据库,可以看到有SQL查询语句打印:
总结
本文简单的介绍了Sl4J
日志框架的使用,并解决MyBatis不能打印的问题。