SpringBoot自定义logback日志配置

本文详细介绍了SpringBoot如何自定义logback日志配置,包括application.properties的简单配置、添加依赖、logback-spring.xml的使用,以及多环境日志输出和解决配置文件不生效的问题。SpringBoot默认使用logback,可通过application.properties设置日志级别,但复杂场景需自定义logback-spring.xml。此外,文章还讨论了如何根据环境配置日志文件和解决配置不生效的常见问题。
摘要由CSDN通过智能技术生成

**前言:**默认情况下,SpringBoot内部使用logback作为系统日志实现的框架,将日志输出到控制台,不会写到日志文件。如果在application.properties或application.yml配置,这样只能配置简单的场景,保存路径、日志格式等。复杂的场景(区分 info 和 error 的日志、每天产生一个日志文件等)满足不了,只能自定义配置文件logback-spring.xml。

一、application.properties系统配置logback日志

1.1、SpringBoot默认的日志配置

日志记录器(Logger)的行为是分等级的,日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,如果设置为WARN,则低于WARN的信息都不会输出。

默认情况下,SpringBoot内部使用logback作为系统日志实现的框架,将日志输出到控制台,不会写到日志文件。Spring boot从控制台打印出来的日志级别默认只有INFO及以上级别,可以在application.properties中修改日志级别logging.level.root=WARN。

SpringBoot默认配置好了日志,只要启动Spring Boot项目就会在控制台输出日志信息。

从上图可以看到,日志输出的内容如下:

  • 时间日期:精确到毫秒

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

  • 进程ID:

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

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

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

  • 日志内容:

控制台格式化输出内容:

# 格式化,只输出日期和内容
logging.pattern.console= "%d -%p -%m" %n

在这里插入图片描述

打印参数: Log4J采用类似C语言中的printf函数的打印格式格式化日志信息,如下:

%m 输出代码中指定的消息
%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
%r 输出自应用启动到输出该log信息耗费的毫秒数
%c 输出所属的类目,通常就是所在类的全名
%t 输出产生该日志事件的线程名
%n 输出一个回车换行符,Windows平台为“\r
”,Unix平台为“

%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比 如%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2018年6月15日22:10:28,921
%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举 例:estlog4.main(TestLog4.java: 10)

1.2、添加依赖

Spring Boot为我们提供了很多默认的日志配置,所以,只要将spring-boot-starter-logging作为依赖加入到pom.xml,则“开箱即用”。实际开发中我们不需要直接添加该依赖,你会发现spring-boot-starter其中包含了 spring-boot-starter-logging,该依赖内容就是 Spring Boot 默认的日志框架 logback。

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

1.3、application.properties简单配置日志相关属性

下面介绍几种在application.properties就可以配置的日志相关属性。

(1)控制台输出

Spring Boot中默认配置INFO、WARN和ERROR级别的日志只输出到控制台。

我们可以在application.properties中修改日志级别logging.level.root=WARN,这样核心Logger(包含嵌入式容器、hibernate、spring)会输出更多内容,还有自己应用的日志就会输出为DEBUG级别。

(2)文件输出

①使用application.properties默认配置

默认情况下,Spring Boot将日志输出到控制台,不会写到日志文件。如果要编写除控制台输出之外的日志文件,则需在application.properties中设置logging.file或logging.path属性。

  • logging.file:设置文件,可以是绝对路径,也可以是相对路径。如:logging.file=my.log

  • logging.path:设置目录,会在该目录下创建spring.log文件,并写入日志内容,如:logging.path=/var/log

如果只配置 logging.file,会在项目的当前路径下生成一个 xxx.log 日志文件;

如果只配置 logging.path,在 /var/log文件夹生成一个日志文件为 spring.log。

注:二者不能同时使用,如若同时使用,则只有logging.file生效

默认情况下,日志文件的大小达到10MB时会切分一次,产生新的

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值