一、介绍
1、支持的类型
SpringBoot支持多种日志框架,包括Logback、Log4j2和Java Util Logging(JUL)。默认情况下,如果你使用SpringBoot的starters启动器,它将使用Logback作为日志框架。
Logback:Logback是SpringBoot默认的日志框架,它是Log4j的继任者,提供了更好的性能和可靠性。你可以通过在资源目录下创建一个logback-spring.xml文件来配置Logback。
Log4j2:Log4j2是Log4j的升级版,它在性能和功能上都有所提升,支持异步日志和插件机制。如果你想在SpringBoot中使用Log4j2,你需要添加相应的依赖并在配置文件中指定Log4j2作为日志框架。
Java Util Logging(JUL):JUL是Java SE的默认日志框架,SpringBoot可以配置使用JUL作为日志框架,但一般不推荐使用,因为它的性能和灵活性相对较差。
除了上述日志框架外,SpringBoot还支持SLF4J和Commons Logging这两个日志门面。这些门面可以与多种日志实现进行集成,使得你可以在不改变代码的情况下更换日志框架。
无论使用哪种日志框架,SpringBoot都支持配置将日志输出到控制台或者文件中。你可以在application.properties或application.yml配置文件中设置日志级别、输出格式等参数。
2、日志级别
在日志系统中,通常会定义不同的日志级别,用于标识日志的重要性或严重性。以下是常见的日志级别,按照从低到高的顺序排列:
ALL:所有日志。
DEBUG:用于调试信息,通常用于开发和调试阶段。
INFO:提供程序运行时的重要信息,用于指示应用程序正常运行。
WARN:表示潜在的问题,不会导致应用程序失败,但可能需要关注。
ERROR:表示错误事件,可能导致应用程序出现问题。
OFF:关闭日志。
二、实战
下面我们主要介绍2种比较常用的日志框架
1、logback
添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</dependency>
在src/main/resources目录下创建一个名为logback-spring.xml的配置文件,Spring Boot会默认加载这个配置文件。Spring Boot官方推荐优先使用带有-spring的文件名作为日志配置。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- 定义全局变量,日志文件路径和格式 -->
<property name="log.path" value="${LOG_PATH}"/>
<property name="log.name" value="${LOG_FILE}"/>
<property name="file.pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread] %logger{50} - %msg%n"/>
<!-- 控制台输出配置 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${file.pattern}</pattern>
</encoder>
<!-- 只输出DEBUG级别及以上的日志 -->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>DEBUG</level>
</filter>
</appender>
<!-- 文件输出配置 -->
<appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/${log.name}.info.log</file>
<encoder>
<pattern>${file.pattern}</pattern>
</encoder>
<!-- 只输出INFO级别的日志 -->
<filter class