Springboot 整合Logback,输出日志到文件

本文详细介绍了如何在SpringBoot项目中整合Logback,实现日志输出到文件。内容包括Logback日志组件的特性、日志等级、打印日志的方法,以及在配置文件中设置日志输出位置的详细步骤,包括使用logging.file.name和logging.file.path的示例。还提到了通过xml配置文件进行高级配置的可能性。
摘要由CSDN通过智能技术生成

Springboot 整合Logback,输出日志到文件。

一、前言

SpringBoot对所有内部日志使用通用日志记录,但保留底层日志实现。为Java Util Logging、Log4J2和Logback提供了默认配置。在不同的情况下,日志记录器都预先配置为使用控制台输出,同时还提供可选的文件输出。
默认情况下,SpringBoot使用Logback进行日志记录。

SpringBoot中默认使用Logback进行日志输出,可以同时使用通过logback的配置文件logback-spring.xml或是SpringBoot框架的配置文件application.yml进行配置。

1.1 logback日志组件

Logback是一款开源日志组件,属于Log4j的升级版本,现在项目组使用的次数越来越多。

Logback主要有下面的特性:

(1)更快的执行速度:基于我们先前在Log4j上的工作,Logback 重写了内部的实现,在某些特定的场景上面,甚至可以比之前的速度快上10倍。在保证Logback的组件更加快速的同时,同时所需的内存更加少;
(2)充分的测试:Logback 历经了几年,数不清小时数的测试。尽管Log4j也是测试过的,但是Logback的测试更加充分,跟Log4j不在同一个级别。我们认为,这正是人们选择Logback而不是Log4j的最重要的原因。谁不希望即使在恶劣的条件下,你的日志框架依然稳定而可靠呢?
(3)由三个模块组成

logback-core
logback-classic
logback-access

logback-core是其它模块的基础设施,其它模块基于它构建,显然,logback-core提供了一些关键的通用机制
logback-classic的地位和作用等同于 Log4J,它也被认为是 Log4J的一个改进版,并且它实现了简单日志门面 SLF4J
logback-access主要作为一个与 Servlet容器交互的模块,比如说tomcat或者 jetty,提供一些与 HTTP访问相关的功能。

1.2 日志等级

日志等级有(从高到低):fatal、error、warn、info、debug、trace、off
默认的日志配置在消息写入时将消息回显到控制台默认情况下,将记录错误级别,警告级别和信息级别的消息。

fatal(致命) error(错误) warn(警告) info (信息) debug(调试) trace(跟踪) off(关闭)

1.3 打印日志

方式一:通过Class的方式初始化:

 private final Logger logger = LoggerFactory.getLogger(UserController.class);
 logger.info("日志输出")

方式二:使用注解@Slf4j:

@Slf4j
@RestController
@RequestMapping("/user")
public class UserController {
   
    @GetMapping ("/testLog")
    public void testLog(){
   
        log.info("日志输出");
    }
}

二、配置

SpringBoot版本2.5.2
日志框架slf4j
日志框架的实现Logback

如果要使用LogBack,原则上是需要添加dependency依赖的

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

但是因为新建的Spring Boot项目一般都会引用spring-boot-starter或者spring-boot-starter-web,而这两个起步依赖中都已经包含了对于spring-boot-starter-logging的依赖,所以,无需额外添加依赖。

2.1 简单配置

如果不需要进行复杂的日志配置,则在配置文件中进行简单的日志配置即可。
默认情况下,SpringBoot日志只记录到控制台,不写日志文件。

项目启动,接口访问,控制台日志输出:
在这里插入图片描述

2.2 输出文件的配置

2.2.1 logging.file.name:指定日志文件的位置

2.2.1.1 例1

例1:使用相对路径,就会在项目根目录下生成一个info.log文件

application.yml:

# 日志配置
logging:
  #日志文件
  file:
    #使用相对路径,就会在项目根目录下生成一个info.log文件
    name: info.log
  #日志级别 root表示所有包,也可以单独配置具体包 fatal error warn info debug trace off
  level:
   root: info

项目启动,在项目根目录下可以看到生成的日志文件:
在这里插入图片描述

2.2.1.2 例2

例2:在项目根目录下生成一个logs文件夹,logs文件夹里面生成一个info.log文件

项目重新启动,在项目根目录下可以看到生成的日志文件:
在这里插入图片描述

2.2.1.3 例3

例3:使用绝对路径,这样写会在D盘下创建一个logs文件夹,logs文件夹里面生成一个info.log文件

项目重新启动,在项目配置路径下可以看到生成的日志文件:
在这里插入图片描述
在这里插入图片描述

2.2.2 logging.file.path:指定日志文件的位置

logging.file.path 的作用与示例 和 logging.file.name一致

注意:
logging.file.name和logging.file.path不要同时指定,只需要指定一个
相对路径不指定盘符,直接在项目根目录下生成

2.3 扩展配置(使用xml扩展)

Spring Boot 包含许多Logback扩展,可以帮助进行高级配置。可以在logback-spring.xml配置文件中使用这些扩展。
如果需要比较复杂的配置,建议使用 扩展配置 的方式。

SpringBoot推荐我们使用带-spring后缀的logback-spring.xml扩展配置。
以logback-spring.xml命名,spring会自动识别加载。

以下是项目常见的完整logback-spring.xml,SpringBoot默认扫描classpath下面的logback.xml、logback-spring.xml,所以不需要再指定spring.logging.config,当然,你指定也没有问题。

logging:
 config: classpath:logback-spring.xml

在resources目录下创建logback-spring.xml配置文件。
使用xml配置可以完成yml配置实现不了的功能,比如按天将日志归档
xml有多种命名形式,但官方推荐的命名是logback-spring.xml

(1)yml配置文件中配置日志输出路径基本信息:

# 日志配置(xml扩展配置)
logPath: D:/logs/
logName: admin
logBusinessLevel: debug
logRootLevel: info
#logging:
#  config: classpath:logback-spring.xml

(2)logback-spring.xml:

<?xml version="1.0" encoding="UTF-8" ?>
<configuration scan="true" scanPeriod="10 seconds">
    <contextName>logback</contex
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值