SpringBoot日志框架

本文介绍了日志框架的重要性及常见日志框架的选择,并详细展示了SLF4J结合Logback在SpringBoot项目中的应用,包括基本使用方法、日志级别控制、自定义日志输出配置等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.日志框架介绍

    在项目的开发中,日志是必不可少的一个记录事件的组件,不管是记录运行情况还是追踪线上问题,都离不开对日志的分析,所以也会相应的在项目中实现和构建我们所需要的日志框架。
    而市面上常见的日志框架有很多,比如:JCL、SLF4J、Jboss-logging、jUL、log4j、log4j2、logback等等,我们该如何选择呢?

通常情况下,日志是由一个抽象层+实现层的组合来搭建的。

         Spring 框架选择使用了 JCL 作为默认日志输出。而 Spring Boot 默认选择了 SLF4J 结合 LogBack

2. SLF4J的基本使用

       SLF4J官网地址: SLF4J Manual

       简单实例

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class DemoService {
    public static void main(String[] args) {
        Logger logger = LoggerFactory.getLogger(DemoService.class);
        logger.info("Hello World");
    }
}

3. 统一日志框架的使用

在引入不同的包是可能会出现多个不同的日志框架,那么SpringBoot是怎么做的统一日志框架

可以看到SpringBoot依赖默认使用的logback 的,并且加入了log4j和java远程日志框架转 SLF4KJ的中间包

 这里可以看到SpringBoot排除了其他日志框架的依赖

统一日志框架的使用流程:

1. 排除系统中的其他日志框架。

2. 使用中间包替换要替换的日志框架。

 3. 导入我们选择的日志框架的实现。

4.SpringBoot日志框架的基本使用

import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.test.context.SpringBootTest;

/**
 * 测试日志输出,
 * SLF4J 日志级别从小到大trace,debug,info,warn,error *
 */
@SpringBootTest
public class demo {

    Logger logger = LoggerFactory.getLogger(this.getClass());

    @Test
    void demo() {
        logger.trace("Trace 日志...");
        logger.debug("Debug 日志...");
        logger.info("Info 日志...");
        logger.warn("Warn 日志...");
        logger.error("Error 日志...");
    }
}

已知日志级别从小到大为 trace < debug < info < warn < error . 运行得到输出如下。由此可见 Spring Boot INFO

从上面的日志结合 Logback 日志格式可以知道 Spring Boot 默认日志格式是

#%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n。

# %d{yyyy-MM-dd HH:mm:ss.SSS} 时间
# %thread 线程名称
# %-5level 日志级别从左显示5个字符宽度

# %logger{50} 类名
# %msg%n 日志信息加换行

 5.自定义日志输出

可以在配置文件编写日志文件相关配置

# 日志配置
# 指定具体包的日志级别
logging.level.com.zql=debug
# 控制台和日志文件输出格式
logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
logging.pattern.file=%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
# 日志输出路径,默认文件spring.log
logging.file.path=spring.log
#logging.file.name=log.log

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值