Spring Boot 第三弹,一文带你了解日志如何配置?

前言

日志通常不会在需求阶段作为一个功能单独提出来,也不会在产品方案中看到它的细节。但是,这丝毫不影响它在任何一个系统中的重要的地位。

今天就来介绍一下Spring Boot中的日志如何配置。

Spring Boot 版本

本文基于的Spring Boot的版本是2.3.4.RELEASE。

日志级别

几种常见的日志级别由低到高分为:TRACE < DEBUG < INFO < WARN < ERROR < FATAL。

如何理解这个日志级别呢?很简单,如果项目中的日志级别设置为INFO,那么比它更低级别的日志信息就看不到了,即是TRACE、DEBUG日志将会不显示。

日志框架有哪些?

常见的日志框架有log4j、logback、log4j2。

log4j这个日志框架显示是耳熟能详了,在Spring开发中是经常使用,但是据说log4j官方已经不再更新了,而且在性能上比logback、log4j2差了很多。

logback是由log4j创始人设计的另外一个开源日志框架,logback相比之于log4j性能提升了10以上,初始化内存加载也更小了。作为的Spring Boot默认的日志框架肯定是有着不小的优势。

log4j2晚于logback推出,官网介绍性能比logback高,但谁知道是不是王婆卖瓜自卖自夸,坊间流传,log4j2在很多思想理念上都是照抄logback,因此即便log4j2是Apache官方项目,Spring等许多框架项目没有将它纳入主流。此处完全是作者道听途说,不必当真,题外话而已

日志框架很多,究竟如何选择能够适应现在的项目开发,当然不是普通程序员考虑的,但是为了更高的追求,至少应该了解一下,哈哈。

Spring Boot 日志框架

Spring Boot默认的日志框架是logback,既然Spring Boot能够将其纳入的默认的日志系统,肯定是有一定的考量的,因此实际开发过程中还是不要更换。

原则上需要使用logback,需要添加以下依赖,但是既然是默认的日志框架,当然不用重新引入依赖了。

<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId>

Spring Boot中默认的日志级别是INFO,启动项目日志打印如下:

Spring Boot 第三弹,一文带你了解日志如何配置?

从上图可以看出,输出的日志的默认元素如下:

时间日期:精确到毫秒

日志级别:ERROR, WARN, INFO, DEBUG , TRACE

进程ID

分隔符:— 标识实际日志的开始

线程名:方括号括起来(可能会截断控制台输出)

Logger名:通常使用源代码的类名

日志内容

代码中如何使用日志?

在业务中肯定需要追溯日志,那么如何在自己的业务中输出日志呢?其实常用的有两种方式,下面一一介绍。

第一种其实也是很早之前常用的一种方式,只需要在代码添加如下:

private final Logger logger= LoggerFactory.getLogger(DemoApplicationTests.class);

这种方式显然比较鸡肋,如果每个类中都添加一下岂不是很low。别着急,lombok为我们解决了这个难题。

要想使用lombok,需要添加如下依赖:

<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency>

使用也是很简单,只需要在类上标注一个注解@Slf4j即可,如下:

@Slf4j class DemoApplicationTests { @Test public void test(){ log.debug("输出DEBUG日志......."); } } 如何定制日志级别?

Spring Boot中默认的日志级别是INFO,但是可以自己定制日志级别,如下:

logging.level.root=DEBUG

上面是将所有的日志的级别都改成了DEBUG,Spring Boot还支持package级别的日志级别调整,格式为:logging.level.xxx=xxx,如下:

logging.level.com.example.demo=INFO

那么完整的配置如下:

logging.level.root=DEBUG logging.level.com.example.demo=INFO 日志如何输出到文件中?

Spring Boot中日志默认是输出到控制台的,但是在生产环境中显示不可行的,因此需要配置日志输出到日志文件中。

其中有两个重要配置如下:

logging.file.path:指定日志文件的路径

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpwsjf.html