首页>>后端>>SpringBoot->springboot日志?

springboot日志?

时间:2023-12-02 本站 点击:0

Spring Boot - 日志记录

[TOC]

Spring Boot 内部使用的日志框架为 Commons Logging ,但是 Commons Logging 的内部具体实现可以由用户自行指定。

默认已提供了对 Java Utils Logging , Log4J2 和 Logback 日志库的相关配置。

无论选择以上哪一个日记库,Spring Boot 都预置了将日志输出到控制台以及可选的文件上。

如果项目配置使用起步依赖(Starters),那么默认情况下,Spring Boot 使用的日记记录库为 Logback。

因此,本文主要介绍在 Spring Boot 中使用 Logback 进行日志记录。

前面已经介绍过,Spring Boot 默认使用的日志框架为 Apache Commons Logging 。

在 Spring 4.x(也即 Spring Boot 1.x )时,我们需要手动进行依赖导入。

但是在 Spring 5.x(也即 Spring Boot 2.x )时,该依赖由 Spring Framework 模块 spring-jcl 提供。

当我们项目使用各种起步依赖(Starter)时, spring-jcl 模块包含在 spring-boot-starter-logging 中,理论上我们需要手动导入该依赖,如下所示:

但实际上我们无需手动导入该起步依赖,因为几乎每一个起步依赖(比如: spring-boot-starter , spring-boot-starter-web ...)都内置了 spring-boot-starter-logging 。

因此,当我们使用起步依赖创建 Spring Boot 项目时,日志功能开箱即可用。

且日记框架内部默认实现采用 Logback。

还有其他一些设置日志级别的方法,这里就不展开阐述了。

更多内容可参考: Log Levels , zero-configuration-logging

Spring Boot 支持多种不同的日志系统实现,可以通过导入相应的依赖库从而在运行时激活对应的日志系统,并且可以通过在 classpath 或 logging.config 属性指定一个配置文件,实现自定义系统日志配置。

对于不同的日志系统,Spring Boot 会默认加载的日志配置文件如下表所示:

注 :Spring Boot 建议我们使用带有 -spring 后缀的作为日志配置文件名称(即相较于使用 logback.xml ,更建议使用 logback-spring.xml )。

如果使用标准配置路径,Spring 无法完全控制日志初始化过程(因为 logback.xml 的加载时间非常早,导致一些扩展功能无法在其内进行配置,而此时使用 logback-spring.xml 即可解决这个问题)。

我们主要关注的是 Logback 的配置文件内容。

要对 Logback 添加配置文件,只需创建 resources/logback-spring.xml ,然后对该文件进行配置即可,其基本配置内容如下:

注 :日志配置文件路径也可以在 application.properties 中进行指定:

简单对上述 logback-spring.xml 的配置内容进行一些介绍:

更多 Logback 配置文件内容,请参考: A Guide To Logback

可以通过在日志配置文件中使用标签 springProfile 来创建不同的环境日志配置。

比如,我们可以通过定义生产环境 prod ,测试环境 test 和开发环境 dev 来实现不同的日志输出,如下所示:

然后,启动服务的时候,设置相应环境的 profile 即可。

比如,可以直接通过命令指定运行环境 profile,如下:

Spring Boot 多环境配置内容,可参考: Spring Boot - 多环境配置

日志技术-SpringBoot使用日志

tips:Ctrl + F快速定位所需内容阅读吧。

注意: SpringBoot默认的日志门面是slf4j-api,日志实现是logback-core,是 SLF4J 加 Logback 的组合。

1、快速入门

1、自定义logger对象日志级别

2、指定控制台输出消息格式

[%-5level] %d{yyyy-MM-dd HH:mm:ss} %c [%thread]=== %m%n

[左对齐5:日志级别] 日期:年-月-日 时:分:秒 类信息 [线程信息]=== 日志信息 换行

3、指定存放日志文件的具体路径

Ⅰ 指定路径及文件名形式: logging.file.name=/logs/springboot.log;

Ⅱ 指定日志存放路径,使用默认文件名spring.log: logging.file.path=/logs/

4、指定配置

给类路径下放上每个日志框架自己的配置文件,SpringBoot就不使用默认配置。

此处我们已Logback为例,如下:

可以看到,此时控制台输出的日志为红色,日期格式也多了毫秒,符合logback.xml配置,如下:

5、使用SpringBoot解析日志配置(灵活切换环境配置)

非常关键的一点,需要使用 logback-spring.xml 、 log4j2-spring.xml 命名的配置文件才能生效。

以下案例我们以logback-spring.xml为例,如下:

在appender内的encoder属性中我们配置了 springProfile 相关的内容。

如何我们dev的配置 [%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} %c %M %L [%thread]--- %m%n" ,如下:

6、将日志切换为log4j2(经常使用)

Ⅰ 排除 Logback 的日志实现: spring-boot-starter-logging ;

Ⅱ 使用 log4j2 的日志启动器: spring-boot-starter-log4j2 。

以上即为SpringBoot使用日志的全部内容,感谢阅读。

Spring Boot中的日志配置

在默认情况下Spring Boot只会在控制台输出日志。

如果不用复杂的功能,只是希望能在文件中输出同样的日志。

只需要在application.properity加入如下配置:

要想更加定制化地进行日志输出,需要自己写logback.xml配置文件,在resources目录下新建logback.xml文件,spring-boot会自动读取该文件,而弃用默认配置。

一种配置,如下所示。其中配置了控制台、文件两种日志输出方式。并且文件时按天另存为新文件,并个性化设置了日志输出格式。同时也做到了给具体包设置不同的日志级别。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:/SpringBoot/9918.html