springboot默认日志Logback配置精简上手版

一、springboot的默认日志

默认情况下,Spring Boot会用Logback来记录日志,并用info级别输出到控制台,也就是说正常情况下启动springboot的XXXApplication类,控制台所看到的日志,即为Logback的info级别日志。

二、使用默认日志Logback进行日志配置

1. 是否添加依赖

首先明确一点,既然是默认日志,那么说明是不需要添加额外依赖的,是属于springboot自带的配置项:

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

是属于spring-boot-starter中内置的spring-boot-starter-logging,所以当你创建了springboot项目时,已经默认开启了logback日志,接下来是要对日志的配置进行自定义。

3.日志级别

日志级别从低到高包括:TRACE、DEBUG、INFO、WARN、ERROR。

2.日志自定义

首先,springboot管理推荐以-spring为文件名作为日志配置文件,来更好的控制日志系统的初始化,以下是原文:

If you want to use a custom name for your logging configuration file, 
you can specify it by using the logging.config property. However,
 if you use the -spring variant for your configuration file
  (for example, logback-spring.xml rather than logback.xml), 
  Spring Boot will be able to fully control the initialization of the logging system.

那么以一个logback-spring.xml的配置文件为例,重点配置如下:

<configuration scan="true" scanPeriod="10 seconds">

定义启用配置文件动态扫描功能,扫描时间为10S,实现不需要重启应用即可加载修改后的logback配置文件,但是生产环境建议不要开启,或者加长扫描时间间隔

    <contextName>logback</contextName>
    <property name="log.path" value="/out"/>
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <!--<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>info</level>
        </filter>-->

appender 标签用于定义日志的输出目的地和输出格式。它是 Logback 日志框架的核心组件之一,负责将日志事件(如日志消息)发送到指定的目标(如控制台、文件、数据库等)。引入的class中的ConsoleAppender是将日志输出到控制台

        <encoder>
            <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</Pattern>
            <charset>UTF-8</charset>
        </encoder>
    </appender>

定义日志格式:
%d{yyyy-MM-dd HH:mm:ss.SSS}——日志输出时间
%thread——输出日志的进程名字,这在Web应用以及异步任务处理中很有用
%-5level——日志级别,并且使用5个字符靠左对齐
%logger{50}——日志输出者的名字
%msg——日志消息
%n——平台的换行符
配置后的示例如下:

2025-03-12 10:24:22.278 [main] INFO  c.g.c.h.m.MeteorologyPowerDataApplication - Started MeteorologyPowerDataApplication in 1.737 seconds (JVM running for 2.07)

    <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${log.path}/meteorology-power-server.log</file>
        <!--日志文档输出格式-->
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
            <charset>UTF-8</charset> <!-- 设置字符集 -->
        </encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${log.path}/back/meteorology-power-server-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>100MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
            <maxHistory>30</maxHistory>
        </rollingPolicy>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>info</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>

引入的class中的RollingFileAppender将日志输出到文件,并支持日志文件的滚动(如按大小或时间分割日志文件)

    <root level="info">
        <appender-ref ref="CONSOLE" />
<!--        <appender-ref ref="DEBUG_FILE" />-->
        <appender-ref ref="INFO_FILE" />
    </root>
</configuration>

root标签用于配置 根日志记录器(Root Logger)。根日志记录器是所有日志记录器的父节点,它的配置会作用于整个应用程序中的所有日志记录器(除非某个日志记录器显式覆盖了配置)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值