Spring Boot 基础日志打印(Logback 在 application.yaml 文件中的配置)

一、Logback

  1. 在 Spring Boot 中,日志框架默认使用的是 Logback,Spring Boot 提供了对日志配置的简化

  2. Spring Boot 默认会将日志输出到控制台,并且日志级别为 INFO

  3. 可以在 application.yamlapplication.properties 文件中进行日志配置

  4. 如果需要自定义日志配置,可以使用 logback-spring.xml 文件,Spring Boot 会自动加载该文件


二、日志级别

日志级别 说明
TRACE 最详细的日志信息,通常用于调试
DEBUG 调试信息,用于开发阶段
INFO 一般信息,用于记录应用程序的运行状态
WARN 警告信息,表示潜在的问题
ERROR 错误信息,表示发生了错误,但应用程序仍可运行

三、Spring Boot 基础日志打印

1、配置文件
  • application.yaml 文件中配置如下内容
logging:
  level:
    root: INFO
  file:
    name: d:/my-logs/app.log
  pattern:
    console: "%d{yyyy-MM-dd HH:mm:ss} - %msg%n"
    file: "%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n"
  • 如果使用的是 application.properties 文件,则配置如下内容
logging.level.root=INFO

logging.file.name=d:/my-logs/app.log

logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss} - %msg%n

logging.pattern.file=%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n
2、测试代码
@Component
public class LogTest {

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

    @PostConstruct
    public void test1() {
        logger.debug("This is a debug message");
        logger.info("This is an info message");
        logger.warn("This is a warning message");
        logger.error("This is an error message");
    }
}

四、Spring Boot 基础日志打印解读

(1)日志级别配置
logging:
  level:
    root: INFO
  1. 设置根日志级别为 INFO,即所有日志记录器的默认日志级别为 INFO

  2. 除非单独指定,例如,com.my.test: DEBUG,为 com.my.test 包及其子包设置日志级别为 DEBUG

(1)日志文件配置
logging:
  file:
    name: d:/my-logs/app.log
  1. 指定日志文件的路径和名称,在这里,日志将写入 d:/my-logs/app.log 文件中

  2. 如果 d:/my-logs 目录不存在,Spring Boot 会尝试创建该目录

  3. 如果文件已存在,日志会追加到文件的末尾

  4. 也可以不指定 name,指定 path,例如,path: d:/my-logs,Spring Boot 会使用默认日志文件名称自动在该目录下生成日志文件

(3)日志格式配置
logging:
  pattern:
    console: "%d{yyyy-MM-dd HH:mm:ss} - %msg%n"
    file: "%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n"
  1. console: "%d{yyyy-MM-dd HH:mm:ss} - %msg%n" 是定义控制台日志的输出格式
格式 解析
%d{yyyy-MM-dd HH:mm:ss} 日期和时间,格式为 年-月-日 时:分:秒
%msg 日志消息内容
%n 换行符
# 示例输出

2023-10-01 12:34:56 - This is an INFO message.
  1. file: "%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n" 是定义日志文件的输出格式
格式 解析
%d{yyyy-MM-dd HH:mm:ss} 日期和时间,格式为 年-月-日 时:分:秒
[%thread] 当前线程名称
%-5level 日志级别(例如,INFO、DEBUG),固定宽度为 5 个字符
%logger{36} 日志记录器的名称,最多显示 36 个字符
%msg 日志消息内容
%n 换行符
# 示例输出

2023-10-01 12:34:56 [main] INFO  com.my.test.MyService - This is an INFO message.
2、测试代码
(1)创建 Logger 实例
private static final Logger logger = LoggerFactory.getLogger(LogTest.class);
  1. LoggerFactory 是 SLF4J 提供的工厂类,用于创建 Logger 实例

  2. getLogger(LogTest.class) 方法会根据传入的类(LogTest.class)创建一个与该类关联的 Logger 实例

  3. 日志输出时会自动带上类名(LogTest),方便定位日志来源

(2)打印日志
logger.debug("This is a debug message");
logger.info("This is an info message");
logger.warn("This is a warning message");
logger.error("This is an error message");
3、注意事项
  1. 默认情况下,日志文件会不断追加,可能会导致文件过大

  2. 可以通过配置日志滚动策略(例如,logback-spring.xml 文件)来限制文件大小或按日期分割文件

你可能感兴趣的:(Java,-,简化库与框架编程,spring,boot,logback,java-ee,java,intellij-idea,后端,spring)