之前有篇博客介绍了日志框架们是怎么来的,它们的前世今生,而SpringBoot是使用slf4j+log4j来进行日志记录的,今天就来看看怎么来使用它们吧
SpringBoot是采用启动器来管理我们的jar包的,而在每一个启动器中都会依赖与spring-boot-start
这个依赖,而spring-boot-start
底层都有spring-boot-logging
这个依赖,也就是说假设我们开发的是web项目,SpringBoot默认就会帮我们导入相关的jar包了,我们不需要自己额外导入jar包(当然了,除非那你不打算使用logback
来记录日志)。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
<version>2.2.5.RELEASE</version>
<scope>compile</scope>
</dependency>
我们在测试类中来使用它
首先通过它给我们提供的工厂来获取到一个日志记录器
Logger logger = LoggerFactory.getLogger(this.getClass());
这里面需要一个Class的参数,用来表示记录哪个类的运行情况,我们这里就使用本类就可以了。
然后就可以调用它的方法了
logger.trace("-------trace");
logger.debug("-------debug");
logger.info("--------info");
logger.warn("--------warn");
logger.error("-------error");
这里先说明下,日志是有级别的,对应的级别是trace<debug<info<warn<error
,我们可以调整输出的日志级别;日志就只会在这个级别以以后的高级别生效
现在系统默认的级别是info级,也就是我们默认只能记录info、warn、error的日志
可以在SpringBoot的全局配置来调整日志记录级别
logging.level.leslie.demo_one=trace
这里是一个logging.level
的配置,是一个map结构,键是要修改的包名,值是日志的级别。现在加上这一配置后,代表leslie包下demo_one子包的日志级别为trace
这样的日志输出只能在控制台上,我们还可以在全局配置中配置一个属性
logging.file=springboot.log
这个配置是将日志输出到当前项目下名为springboot.log
的文件中
以后可能会经常使用日志记录功能来协助我们的开发工作.