最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

springboot項(xiàng)目日志配置的詳細(xì)指南

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

前言

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

Logback+SLF4J簡(jiǎn)介

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

如何配置日志

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

配置文件配置

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

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

使用Logback的XML配置文件

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

核心組件

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

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

配置案例

下面是一個(gè)比較標(biāo)準(zhǔn)的 Logback 配置文件,它很好地設(shè)置了日志輸出到控制臺(tái)和文件,并配置了日志滾動(dòng)策略。一般情況下如下配置就足夠滿足日志需求了

<?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"/>
    <!-- 控制臺(tái)輸出 -->
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>${CONSOLE_PATTERN}</pattern>
        </encoder>
    </appender>
    <!-- 文件輸出與滾動(dòng)策略 -->
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_PATH}/application.log</file>
        <encoder>
            <pattern>${CONSOLE_PATTERN}</pattern>
        </encoder>
        <!-- 當(dāng)application.log達(dá)到10MB或日期變更時(shí),會(huì)將其壓縮歸檔并按模式重命名,然后創(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è)置全局日志級(jí)別 -->
    <root level="INFO">
        <appender-ref ref="CONSOLE" />
        <appender-ref ref="FILE" />
    </root>
    <!-- 為特定包設(shè)置更詳細(xì)的日志級(jí)別 -->
<!--    <logger name="com.yourproject.service" level="DEBUG" />-->
</configuration>

補(bǔ)充:Spring Boot日志文件配置指南

Spring Boot日志文件配置指南

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

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

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

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

application.properties 配置示例:

# 設(shè)置日志輸出路徑和文件名(二選一)
logging.file.name=logs/app.log  # 完整路徑(優(yōu)先使用)
# 或指定目錄(自動(dòng)生成 spring.log)
logging.file.path=logs 
# 日志級(jí)別設(shè)置
logging.level.root=INFO
logging.level.com.yourpackage=DEBUG
# 日志滾動(dòng)策略(防止日志文件過(guò)大)
logging.logback.rollingpolicy.max-file-size=10MB  # 單個(gè)文件最大
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
  • 按大小滾動(dòng):app.log → app.2023-01-01.0.log.gz(壓縮歸檔)
  • 保留最近 30 天的日志

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

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

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" />
    <!-- 控制臺(tái)輸出 -->
    <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>  <!-- 單個(gè)文件最大 -->
            <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>
    <!-- 日志級(jí)別設(shè)置 -->
    <root level="INFO">
        <appender-ref ref="CONSOLE" />
        <appender-ref ref="FILE" />
    </root>
    <!-- 包級(jí)別日志 -->
    <logger name="com.yourpackage" level="DEBUG" />
</configuration>

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

  • RollingFileAppender:日志文件輸出核心組件
  • SizeAndTimeBasedRollingPolicy:按日期 + 大小滾動(dòng)
  • maxFileSize:?jiǎn)蝹€(gè)日志文件最大尺寸
  • maxHistory:保留歷史日志天數(shù)
  • fileNamePattern:歸檔文件名格式(.gz 自動(dòng)壓縮)

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

相關(guān)文章

  • springboot3.x版本集成log4j沖突以及解決log4j沖突不生效問(wèn)題

    springboot3.x版本集成log4j沖突以及解決log4j沖突不生效問(wèn)題

    由于Spring Boot自帶的Logback與Log4j沖突,去除了Logback的jar包后仍存在,原因是其他包也引入了Logback,解決方法是找到并去除引入Logback的其他包,如actuator包,并更新Maven
    2024-11-11
  • 詳解Spring數(shù)據(jù)緩存注解@Cacheable、@CachePut、@CacheEvict

    詳解Spring數(shù)據(jù)緩存注解@Cacheable、@CachePut、@CacheEvict

    這篇文章主要介紹了詳解Spring數(shù)據(jù)緩存注解@Cacheable、CachePut、@CacheEvict,當(dāng)以一組參數(shù)第一次調(diào)用某個(gè)方法時(shí),返回值會(huì)被保存在緩存中,如果這個(gè)方法再次以相同的參數(shù)進(jìn)行調(diào)用時(shí),這個(gè)返回值會(huì)從緩存中查詢獲取,需要的朋友可以參考下
    2023-07-07
  • Mybatis-Plus Wrapper條件構(gòu)造器超詳細(xì)使用教程

    Mybatis-Plus Wrapper條件構(gòu)造器超詳細(xì)使用教程

    接口方法的參數(shù)中,會(huì)出現(xiàn)各種 Wrapper,比如 queryWrapper、updateWrapper 等。Wrapper 的作用就是用于定義各種各樣的條件(where)。所以不管是查詢、更新、刪除都會(huì)用到Wrapper
    2022-03-03
  • Spring?Data?Exists查詢最佳方法編寫示例

    Spring?Data?Exists查詢最佳方法編寫示例

    這篇文章主要為大家介紹了Spring?Data?Exists查詢最佳方法編寫示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • Spring Boot 自定義數(shù)據(jù)源DruidDataSource代碼

    Spring Boot 自定義數(shù)據(jù)源DruidDataSource代碼

    這篇文章主要介紹了Spring Boot 自定義數(shù)據(jù)源DruidDataSource代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • TOMCAT內(nèi)存溢出及大小調(diào)整的實(shí)現(xiàn)方法

    TOMCAT內(nèi)存溢出及大小調(diào)整的實(shí)現(xiàn)方法

    下面小編就為大家?guī)?lái)一篇TOMCAT內(nèi)存溢出及大小調(diào)整的實(shí)現(xiàn)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-05-05
  • Java隨機(jī)生成字符串的四種方式例子

    Java隨機(jī)生成字符串的四種方式例子

    這篇文章主要給大家介紹了關(guān)于Java隨機(jī)生成字符串的四種方式,隨機(jī)數(shù)在實(shí)際中使用很廣泛,比如要隨即生成一個(gè)固定長(zhǎng)度的字符串、數(shù)字,文中給出了詳細(xì)的代碼示例,需要的朋友可以參考下
    2023-10-10
  • 解析java中的condition

    解析java中的condition

    Condition 將 Object 監(jiān)視器方法(wait()、notify()和notifyAll())分解成截然不同的對(duì)象,以便通過(guò)將這些對(duì)象與任意Lock實(shí)現(xiàn)組合使用,為每個(gè)對(duì)象提供多個(gè)等待 set(wait-set)
    2021-06-06
  • Spring源碼之請(qǐng)求路徑匹配路由方式

    Spring源碼之請(qǐng)求路徑匹配路由方式

    這篇文章主要介紹了Spring源碼之請(qǐng)求路徑匹配路由方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • 如何在 Java 中實(shí)現(xiàn)不可變類

    如何在 Java 中實(shí)現(xiàn)不可變類

    這篇文章主要介紹了如何在 Java 中實(shí)現(xiàn)不可變類,不變性是函數(shù)式編程的關(guān)鍵,因?yàn)樗c盡量減少變化部分的這一目標(biāo)相一致,這使得對(duì)這些部分的推斷更為容易一些。,需要的朋友可以參考下
    2019-06-06

最新評(píng)論

高阳县| 龙山县| 宜川县| 凤阳县| 双流县| 盐津县| 陕西省| 洛南县| 西青区| 富蕴县| 贺兰县| 寻甸| 精河县| 宜兰县| 绥德县| 商丘市| 新建县| 定州市| 梅州市| 西乌珠穆沁旗| 阳城县| 独山县| 通化县| 吴忠市| 林州市| 邳州市| 乐东| 大关县| 五大连池市| 鸡东县| 碌曲县| 安阳县| 亚东县| 玉环县| 洛川县| 井陉县| 彭泽县| 九龙坡区| 珲春市| 洛隆县| 乌拉特后旗|