欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

springboot項目日志配置的詳細指南

 更新時間:2025年09月19日 11:12:09   作者:勇往直前plus  
本文介紹Spring Boot日志配置,重點講解Logback與SLF4J的結(jié)合、日志級別設(shè)置及YAML/XML配置方式,涵蓋控制臺、文件輸出、滾動策略等,提升開發(fā)與維護效率,感興趣的朋友一起看看吧

前言

最近公司新開一個項目,需要從零搭建、開發(fā),之前的工作都是在已完成的項目上進行維護 ,沒有重點關(guān)注這些項目的日志是如何配置的,借此機會總結(jié)一下boot項目如何合理配置日志,日志是項目遇到問題時首先要排查的內(nèi)容,因此一個合理的日志配置必定會減少項目的維護難度,提升開發(fā)效率。

Logback+SLF4J簡介

  • SpringBoot默認使用??Logback??作為日志框架,它與SLF4J(Simple Logging Facade for Java)結(jié)合使用,提供了一個高效、靈活的日志解決方案,Logback相比其他日志框架具有性能高、配置靈活、內(nèi)存占用小等優(yōu)點,一般項目中使用默認的Logback日志框架就足夠用了。
  • 因此,實際在底層干活,輸出日志的組件的是Logback,SLF4J只是提供了一些方便的API和日志使用方式,實際底層也是調(diào)用Logback輸出日志。
  • Logback 是通過spring-boot-starter-web或者其他依賴間接引入的,如果要使用其他日志框架,直接排除掉默認的 spring-boot-starter-logging,再引入其他依賴即可。
  • 日志有日志級別,日志級別從低到高分為:TRACE < DEBUG < INFO < WARN < ERROR。設(shè)置某個級別后,只會輸出該級別及更高級別的日志信息。級別越低,日志越詳細,但輸出也越多;級別越高,只記錄越重要的問題
日志級別應(yīng)用場景通俗理解
TRACE記錄程序執(zhí)行的每一步細節(jié),用于極端細致的調(diào)試流水賬
DEBUG開發(fā)階段排查問題,記錄變量值、方法執(zhí)行等調(diào)試筆記
INFO潛在的問題或不影響系統(tǒng)的異常(如配置未設(shè)置使用默認值)情況簡報
WARN記錄程序執(zhí)行的每一步細節(jié),用于極端細致的調(diào)試注意一下
ERROR錯誤事件,影響部分功能但系統(tǒng)仍可運行(如數(shù)據(jù)庫連接失敗)出問題了
  • 配置了日志級別后,當我們的代碼調(diào)用日志、或者其他第三方框架內(nèi)部調(diào)用日志輸出時,Logback 會檢查要輸出的日志級別和當前已配置的日志級別,如果要輸出的日志級別大于配置的日志級別,日志會輸出,否則Logback 會忽略此條日志輸出。

如何配置日志

SpringBoot 支持兩種主要的 Logback 配置方式,這兩種配置方式可以組合使用;一種是在yaml配置文件中配置,這種配置方式比較簡單,快捷,適用于簡單的日志配置需求,優(yōu)先級較低,另一種是通過Logback專用logback-spring.xml配置文件,功能全面,支持高級功能如多環(huán)境、異步日志、復(fù)雜滾動策略等,優(yōu)先級高

配置文件配置

這種方式適合快速設(shè)置和覆蓋默認值。

# application.yml 示例
logging:
  level:
    root: INFO # 全局默認日志級別
    com.example.demo: DEBUG # 設(shè)置特定包的日志級別
    org.springframework: WARN
  file:
    name: ./logs/myapp.log # 指定具體的日志文件路徑和名稱(通常設(shè)置一個即可)
    # path: ./logs # 或者指定日志目錄,Spring Boot 會使用默認文件名 spring.log
  pattern:
    console: "%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n" # 控制臺輸出格式
    file: "%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n" # 文件輸出格式
  • ??logging.level??:控制日志級別。root設(shè)置根記錄器,其他為包或類名。
  • ??logging.file.namelogging.file.path??:定義日志輸出到文件。
  • ??logging.pattern.consolelogging.pattern.file??:定義日志輸出格式。

使用Logback的XML配置文件

對于生產(chǎn)環(huán)境或需要精細控制的場景,logback-spring.xml是不二之選。將logback-spring.xml配置文件放在resources類路徑下

核心組件

一個完整的配置通常包含以下部分:

  • <configuration> 根元素。
  • <appender> 定義日志輸出目的地(如控制臺、文件)和行為??,包含核心輸出器?? ConsoleAppender:輸出到控制臺。RollingFileAppender:輸出到文件并支持??滾動策略??(按時間、大小分割),防止單個文件過大
  • <logger>??:為特定包或類配置日志級別和使用的 Appender
  • <root>??:配置根記錄器,所有日志記錄器最終都繼承于此

配置案例

下面是一個比較標準的 Logback 配置文件,它很好地設(shè)置了日志輸出到控制臺和文件,并配置了日志滾動策略。一般情況下如下配置就足夠滿足日志需求了

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <!-- 定義變量 -->
    <property name="LOG_PATH" value="logs" />
    <property name="CONSOLE_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n"/>
    <!-- 控制臺輸出 -->
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>${CONSOLE_PATTERN}</pattern>
        </encoder>
    </appender>
    <!-- 文件輸出與滾動策略 -->
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_PATH}/application.log</file>
        <encoder>
            <pattern>${CONSOLE_PATTERN}</pattern>
        </encoder>
        <!-- 當application.log達到10MB或日期變更時,會將其壓縮歸檔并按模式重命名,然后創(chuàng)建新的application.log寫入 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${LOG_PATH}/archived/application-%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
            <maxFileSize>10MB</maxFileSize>
            <maxHistory>30</maxHistory>
        </rollingPolicy>
    </appender>
    <!-- 設(shè)置全局日志級別 -->
    <root level="INFO">
        <appender-ref ref="CONSOLE" />
        <appender-ref ref="FILE" />
    </root>
    <!-- 為特定包設(shè)置更詳細的日志級別 -->
<!--    <logger name="com.yourproject.service" level="DEBUG" />-->
</configuration>

補充:Spring Boot日志文件配置指南

Spring Boot日志文件配置指南

在 Java Spring Boot 項目中配置日志輸出到文件,可以通過以下步驟實現(xiàn)。Spring Boot 默認使用 Logback 作為日志框架,以下是兩種常用配置方式:

方法一:通過application.properties/application.yml配置(推薦)

這是最簡單的配置方式,適合大多數(shù)場景。

1. 在配置文件中添加日志設(shè)置

application.properties 配置示例:

# 設(shè)置日志輸出路徑和文件名(二選一)
logging.file.name=logs/app.log  # 完整路徑(優(yōu)先使用)
# 或指定目錄(自動生成 spring.log)
logging.file.path=logs 
# 日志級別設(shè)置
logging.level.root=INFO
logging.level.com.yourpackage=DEBUG
# 日志滾動策略(防止日志文件過大)
logging.logback.rollingpolicy.max-file-size=10MB  # 單個文件最大
logging.logback.rollingpolicy.max-history=30      # 保留30天日志
logging.logback.rollingpolicy.total-size-cap=1GB  # 歸檔總大小限制

application.yml 配置示例:

logging:
  file:
    name: logs/app.log
  level:
    root: INFO
    com.yourpackage: DEBUG
  logback:
    rollingpolicy:
      max-file-size: 10MB
      max-history: 30
      total-size-cap: 1GB

2. 日志文件效果

  • 日志輸出到 logs/app.log
  • 按大小滾動:app.log → app.2023-01-01.0.log.gz(壓縮歸檔)
  • 保留最近 30 天的日志

方法二:自定義logback-spring.xml配置(高級需求)

當需要復(fù)雜配置(如自定義格式、多環(huán)境配置、異步日志等)時使用。

1. 創(chuàng)建配置文件

在 src/main/resources 下新建 logback-spring.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <!-- 通用配置 -->
    <property name="LOG_PATH" value="logs" />
    <property name="APP_NAME" value="your-app" />
    <!-- 控制臺輸出 -->
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>
    <!-- 文件輸出(按天歸檔) -->
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_PATH}/${APP_NAME}.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${LOG_PATH}/${APP_NAME}.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
            <maxFileSize>10MB</maxFileSize>  <!-- 單個文件最大 -->
            <maxHistory>30</maxHistory>      <!-- 保留天數(shù) -->
            <totalSizeCap>1GB</totalSizeCap> <!-- 總大小限制 -->
        </rollingPolicy>
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{35} - %msg%n</pattern>
        </encoder>
    </appender>
    <!-- 日志級別設(shè)置 -->
    <root level="INFO">
        <appender-ref ref="CONSOLE" />
        <appender-ref ref="FILE" />
    </root>
    <!-- 包級別日志 -->
    <logger name="com.yourpackage" level="DEBUG" />
</configuration>

2. 關(guān)鍵配置說明

  • RollingFileAppender:日志文件輸出核心組件
  • SizeAndTimeBasedRollingPolicy:按日期 + 大小滾動
  • maxFileSize:單個日志文件最大尺寸
  • maxHistory:保留歷史日志天數(shù)
  • fileNamePattern:歸檔文件名格式(.gz 自動壓縮)

到此這篇關(guān)于springboot項目日志配置指南的文章就介紹到這了,更多相關(guān)springboot日志配置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MyBatis中的循環(huán)插入insert foreach問題

    MyBatis中的循環(huán)插入insert foreach問題

    這篇文章主要介紹了MyBatis中的循環(huán)插入insert foreach問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Idea集成ApiFox插件及使用小結(jié)

    Idea集成ApiFox插件及使用小結(jié)

    本文介紹了如何使用Apifox和IntelliJ IDEA插件來整理和生成接口文檔,包括配置Apifox和IntelliJ IDEA插件、代碼案例以及使用方法,感興趣的朋友跟隨小編一起看看吧
    2024-11-11
  • springboot 在ftl頁面上使用shiro標簽的實例代碼

    springboot 在ftl頁面上使用shiro標簽的實例代碼

    這篇文章主要介紹了springboot 在ftl頁面上使用shiro標簽的實例代碼,通過文字說明結(jié)合實例的形式給大家介紹的非常詳細,需要的朋友參考下吧
    2018-05-05
  • mybatis查詢語句的背后揭秘

    mybatis查詢語句的背后揭秘

    這篇文章主要給大家介紹了關(guān)于mybatis查詢語句的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用mybatis具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-04-04
  • springboot注冊bean的三種方法

    springboot注冊bean的三種方法

    這篇文章主要介紹了springboot注冊bean的三種方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-02-02
  • Java消息摘要算法MAC實現(xiàn)與應(yīng)用完整示例

    Java消息摘要算法MAC實現(xiàn)與應(yīng)用完整示例

    這篇文章主要介紹了Java消息摘要算法MAC實現(xiàn)與應(yīng)用,結(jié)合完整實例形式分析了java消息摘要算法MAC的概念、原理、實現(xiàn)方法及相關(guān)操作注意事項,需要的朋友可以參考下
    2019-09-09
  • Java使用HttpClient實現(xiàn)文件下載

    Java使用HttpClient實現(xiàn)文件下載

    這篇文章主要為大家詳細介紹了Java使用HttpClient實現(xiàn)文件下載,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • MyBatis中if標簽的基本使用

    MyBatis中if標簽的基本使用

    本文介紹了MyBatis框架中的if標簽的使用方法,包括動態(tài)生成SQL語句、處理不同類型的參數(shù)和if標簽進行條件判斷,具有一定的參考價值,感興趣的可以了解一下
    2024-12-12
  • springboot如何實現(xiàn)異步響應(yīng)請求(前端請求超時的問題解決)

    springboot如何實現(xiàn)異步響應(yīng)請求(前端請求超時的問題解決)

    這篇文章主要給大家介紹了關(guān)于springboot如何實現(xiàn)異步響應(yīng)請求(前端請求超時的問題解決)的相關(guān)資料,文中通過實例代碼介紹的非常詳細,對大家學習或者使用springboot具有一定的參考學習價值,需要的朋友可以參考下
    2023-01-01
  • 在Spring中自動裝配Bean的屬性

    在Spring中自動裝配Bean的屬性

    今天小編就為大家分享一篇關(guān)于在Spring中自動裝配Bean的屬性,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01

最新評論