logback-spring.xml文件說明

項目里剛好用到,用豆包生成以下說明,此處作為記錄。

以下是一個?logback-spring.xml?配置文件示例,結合了 Spring Boot 特性,支持環境區分、日志滾動和不同級別日志輸出,并包含詳細注釋:

<?xml version="1.0" encoding="UTF-8"?>
<!--?logback-spring.xml 是 Spring Boot 推薦的 logback 配置文件名相比 logback.xml,它能更好地與 Spring 環境集成(如使用 springProfile 標簽)
-->
<configuration scan="true" scanPeriod="60 seconds" debug="false"><!-- 1. 定義日志格式和變量 --><property name="LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n" /><property name="LOG_FILE_PATH" value="${LOG_FILE:-${LOG_PATH:-${user.home}/logs}}/myapp" /><!-- 2. 控制臺輸出配置 --><appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"><!-- 控制臺輸出編碼器 --><encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"><!-- 使用定義的日志格式 --><pattern>${LOG_PATTERN}</pattern><!-- 字符編碼 --><charset>UTF-8</charset></encoder><!-- 控制臺輸出過濾器:只輸出 INFO 及以上級別日志(可根據需要調整) --><filter class="ch.qos.logback.classic.filter.ThresholdFilter"><level>INFO</level></filter></appender><!-- 3. 普通日志文件輸出(INFO 及以上級別,按天滾動) --><appender name="FILE_INFO" class="ch.qos.logback.core.rolling.RollingFileAppender"><!-- 日志文件路徑和名稱 --><file>${LOG_FILE_PATH}/info.log</file><!-- 滾動策略:按時間滾動(每天一個文件) --><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!-- 滾動后文件的命名格式(包含日期和.gz壓縮) --><fileNamePattern>${LOG_FILE_PATH}/info.%d{yyyy-MM-dd}.log.gz</fileNamePattern><!-- 日志文件保留天數 --><maxHistory>30</maxHistory><!-- 總日志大小限制(超過后刪除舊文件) --><totalSizeCap>10GB</totalSizeCap></rollingPolicy><!-- 過濾器:只輸出 INFO 級別日志(不包含 ERROR) --><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>ERROR</level><onMatch>DENY</onMatch> <!-- 匹配到 ERROR 級別則拒絕 --><onMismatch>ACCEPT</onMismatch> <!-- 不匹配則接受 --></filter><!-- 文件輸出編碼器 --><encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"><pattern>${LOG_PATTERN}</pattern><charset>UTF-8</charset></encoder></appender><!-- 4. 錯誤日志文件輸出(ERROR 級別,單獨存儲) --><appender name="FILE_ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${LOG_FILE_PATH}/error.log</file><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>${LOG_FILE_PATH}/error.%d{yyyy-MM-dd}.log.gz</fileNamePattern><maxHistory>30</maxHistory><totalSizeCap>5GB</totalSizeCap></rollingPolicy><!-- 過濾器:只輸出 ERROR 級別日志 --><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>ERROR</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter><encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"><pattern>${LOG_PATTERN}</pattern><charset>UTF-8</charset></encoder></appender><!-- 5. 多環境日志級別配置(結合 Spring Profile) --><!-- 開發環境:日志級別為 DEBUG,輸出到控制臺和文件 --><springProfile name="dev"><root level="DEBUG"><appender-ref ref="CONSOLE" /><appender-ref ref="FILE_INFO" /><appender-ref ref="FILE_ERROR" /></root><!-- 特定包的日志級別(如 MyBatis 日志調為 INFO,避免 DEBUG 日志過多) --><logger name="org.mybatis" level="INFO" additivity="false"><appender-ref ref="CONSOLE" /></logger></springProfile><!-- 測試環境:日志級別為 INFO,輸出到文件 --><springProfile name="test"><root level="INFO"><appender-ref ref="FILE_INFO" /><appender-ref ref="FILE_ERROR" /></root></springProfile><!-- 生產環境:日志級別為 WARN,輸出到文件,限制日志量 --><springProfile name="prod"><root level="WARN"><appender-ref ref="FILE_INFO" /><appender-ref ref="FILE_ERROR" /></root><!-- 生產環境中,特定業務包日志級別設為 INFO --><logger name="com.example.business" level="INFO" additivity="false"><appender-ref ref="FILE_INFO" /></logger></springProfile><!-- 6. 自定義 logger 示例(針對特定包或類) --><!-- additivity="false" 表示不向上級 logger 傳遞日志,避免重復輸出 --><logger name="com.example.controller" level="INFO" additivity="false"><appender-ref ref="CONSOLE" /><appender-ref ref="FILE_INFO" /></logger>
</configuration>

配置說明:

  1. 核心特性

    • 支持 Spring Profile 區分環境(開發 / 測試 / 生產)
    • 日志同時輸出到控制臺和文件
    • 按級別分離日志(普通日志和錯誤日志分開存儲)
    • 自動滾動日志文件(按天分割,自動壓縮舊文件)
  2. 主要配置項解釋

    • <property>:定義全局變量(如日志格式、文件路徑)
    • <appender>:日志輸出目的地配置
      • CONSOLE:控制臺輸出,適合開發環境
      • FILE_INFO:普通日志文件輸出(INFO 級別,不含 ERROR)
      • FILE_ERROR:錯誤日志單獨輸出(僅 ERROR 級別)
    • <springProfile>:結合 Spring 環境的日志級別控制
      • 開發環境(dev):輸出 DEBUG 級別日志,便于調試
      • 生產環境(prod):只輸出 WARN 及以上級別,減少日志量
    • <logger>:針對特定包或類的日志級別配置,可覆蓋 root 配置
  3. 使用技巧

    • 日志文件路徑默認在用戶目錄下的?logs/myapp?文件夾,可通過系統變量?LOG_PATH?或?LOG_FILE?自定義
    • 生產環境中通過限制日志級別和保留天數,避免磁盤空間耗盡
    • additivity="false"?用于防止日志重復輸出(如同時輸出到控制臺和文件)

該配置可根據實際項目需求調整日志級別、文件路徑和滾動策略。

? ??

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/96584.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/96584.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/96584.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

專題:2025社交媒體營銷與電商融合趨勢報告:抖音、小紅書、短劇、直播全拆解|附210+份報告PDF、數據儀表盤匯總下載

原文鏈接&#xff1a;https://tecdat.cn/?p43853 原文出處&#xff1a;拓端抖音號拓端tecdat 3年前&#xff0c;電商還停留在“貨架擺貨、用戶搜關鍵詞下單”的傳統模式&#xff0c;社交媒體只是品牌“打知名度”的輔助工具&#xff1b;如今&#xff0c;用戶刷抖音直播能直接下…

大模型API密鑰生成規則分析

大模型API密鑰生成規則分析 一、核心生成原則與安全基礎 1.1 密碼學安全隨機數生成 大模型API密鑰的核心安全基礎在于高熵值隨機數生成,需滿足以下技術標準: 熵值要求:至少128位(16字節),推薦256位(32字節),通過密碼學安全偽隨機數生成器(CSPRNG)實現 生成算法:…

太陽光度計在光伏電站的用途

太陽光度計在光伏電站中具有多重關鍵用途&#xff0c;能夠為電站的規劃、運行、維護及能效提升提供科學依據。以下是其具體應用場景及價值分析&#xff1a;1. 太陽能資源評估與電站選址優化核心功能&#xff1a;太陽光度計通過測量直接太陽輻射&#xff08;DNI&#xff09;、散…

ArkTS(方舟 TypeScript)全面介紹:鴻蒙生態的核心編程語言

一、引言 隨著鴻蒙(HarmonyOS)的快速演進,開發者生態成為支撐其發展的關鍵因素。無論是手機、平板、智能穿戴,還是車機、IoT 設備,鴻蒙都希望通過“一次開發,多端部署”的理念,讓開發者能夠更高效地構建應用。 為了實現這一目標,華為推出了 ArkTS(方舟 TypeScript)…

領碼方案|Linux 下 PLT → PDF 轉換服務超級完整版:異步、權限、進度(一氣呵成)

本教程給出可直接落地的 Linux 環境下 PLT→PDF 轉換微服務&#xff0c;全鏈路涵蓋&#xff1a;同步/異步模式、JWTRBAC項目域權限、任務狀態與進度、PDF 水印與審計、可觀測性與彈性伸縮&#xff1b;技術棧為 Spring Boot gpcl6&#xff08;GhostPCL&#xff09; Redis S3/O…

基于51單片機的LCD12864萬年歷時鐘

目錄 具體實現功能 設計介紹 資料內容 全部內容 資料獲取 具體實現功能 具體功能&#xff1a; &#xff08;1&#xff09;LCD12864實時顯示當前時間&#xff08;年月日時分秒星期&#xff09;及溫度值&#xff1b; &#xff08;2&#xff09;四個按鍵可調整當前時間值&…

【C++】string類--常見接口及其模擬實現

目錄 1. 遍歷 1.1. 下標operator[ ] 1.2. c_str 1.3. 迭代器 1.4. 范圍for 2. 增 2.1. push_back 2.2. 重載&#xff08;char ch&#xff09; 2.3. appand 2.4. 重載&#xff08;char* ch&#xff09; 2.5. insert&#xff08;任意位置插入&#xff09; 2.5.1. 任意…

SCADA 云化部署核心:WebSocket 協議實現毫秒級遠程控制

在浙江某智慧水廠的中控室里&#xff0c;曾發生過一次驚險的遠程控制失誤&#xff1a;運維人員通過傳統 SCADA 系統&#xff08;工業控制系統的 “大腦”&#xff09;遠程調節水泵轉速&#xff0c;指令發出后&#xff0c;屏幕上卻遲遲沒有反饋 —— 等水泵轉速最終變化時&#…

大數據電商流量分析項目實戰:Day1-2 補充 軟件安裝和Zookeeper

?博客主頁&#xff1a; https://blog.csdn.net/m0_63815035?typeblog &#x1f497;《博客內容》&#xff1a;大數據、Java、測試開發、Python、Android、Go、Node、Android前端小程序等相關領域知識 &#x1f4e2;博客專欄&#xff1a; https://blog.csdn.net/m0_63815035/…

EMC電磁兼容進階3講培訓:專題三 近場探頭和頻譜儀在EMC整改中的應用

一節課&#xff0c;名企實戰型工程師讓你了解近場探頭與頻譜分析儀在EMC整改中的應用&#xff0c;從實際整改測試出發&#xff0c;結合實際項目案例進行講解。一頓聚餐的費用&#xff0c;助您入門一個很有前景的行業&#xff01; 注&#xff1a;不是賣資料&#xff01;不是賣資…

使用動態IP 需要注意什么

網絡安全防護動態IP會頻繁變更&#xff0c;需確保防火墻和殺毒軟件實時更新&#xff0c;防止因IP變動導致的安全漏洞。避免在公共網絡環境下登錄敏感賬戶&#xff0c;建議使用VPN加密連接。服務穩定性管理某些在線服務&#xff08;如遠程辦公、游戲服務器&#xff09;可能因IP變…

GitHub自動化利器:Probot框架實戰指南

引言 在當今快節奏的軟件開發世界中&#xff0c;自動化已成為提高生產力和保證代碼質量的關鍵要素。GitHub作為全球最大的代碼托管平臺&#xff0c;其豐富的API生態系統為自動化提供了無限可能。Probot作為一個基于Node.js的開源框架&#xff0c;專門用于構建GitHub應用程序&a…

第十四屆藍橋杯青少組C++選拔賽[2023.2.12]第二部分編程題(4、最大空白區)

參考程序1&#xff1a;#include <bits/stdc.h> using namespace std;int main() {int N, M;cin >> N >> M;vector<vector<int>> grid(N, vector<int>(M));for (int i 0; i < N; i)for (int j 0; j < M; j)cin >> grid[i][j]…

文心一言-Agent崗三輪面試全記錄

面經分享&#xff5c;文心一言-Agent崗三輪面試全記錄 前段時間面試了 文心一言團隊 - 大模型 Agent 崗&#xff0c;三輪面試下來感觸頗多。整體來說&#xff0c;文心團隊的面試節奏偏“循序漸進”&#xff1a;一面看基礎&#xff0c;二面看綜合素養&#xff0c;三面看思考深度…

【大前端++】幾大特征

大綱 大前端業務模型結構如下&#xff1a; 服務后臺大前端原生系統可定制的終端硬件 1、業務的起點技術結構基于跨平臺前端框架 Electronvue/Rect/其他web框架js/ts FlutterDartvue/Rect/其他web框架js/ts 其他前端框架結構 2、有特定的業務使用場景 人臉識別考勤 數字…

計算機網絡---網絡體系結構

文章目錄1. 網絡的概念1.1 什么是計算機網絡1.2 簡單的計算機網絡1.3 互聯網&#xff08;或因特網&#xff0c;Internet&#xff09;1.4 計算機網絡、互連網和互聯網三者的區別1.5 總結2. 網絡的組成、功能2.1 組成2.1.1 從組成部分看2.1.2 從工作方式看2.1.3 從邏輯功能看2.2 …

機器學習超參數調優全方法介紹指南

本篇文章Master Hyperparameter Tuning in Machine Learning適合希望深入了解超參數調優的讀者。文章的亮點在于介紹了多種調優方法&#xff0c;如手動搜索、網格搜索、隨機搜索、貝葉斯優化和元啟發式算法&#xff0c;并通過實際案例展示了這些方法在復雜模型&#xff08;如CN…

怎么降低 AIGC 生成率?

怎么降低 AIGC 生成率&#xff1f;市面上那些號稱 "AI 降重神器" 的工具真的有用嗎&#xff1f;想和大家聊聊我的看法 ——人工修改生成內容&#xff0c;可能是目前最靠譜的辦法。一、AI 降重工具的實際效果現在很多工具說能通過 AI 降低 AIGC 生成率&#xff0c;原理…

心磁圖 QRS 參數在 Brugada 綜合征心律失常風險分層中的應用

研究背景Brugada 綜合征是一種與致命性室性心律失常及心源性猝死風險相關的遺傳性心臟離子通道病&#xff0c;其典型特征為右胸導聯&#xff08;V1-V3&#xff09;出現特征性ST段抬高&#xff08;1型、2型或3型 Brugada 心電圖表現&#xff09;。然而&#xff0c;靜息心電圖呈現…

Futuring robot旗下家庭機器人F1將于2025年面世

2025年9月10日&#xff0c;張翼二次創業的機器人公司Futuring Robot發布了第一款家庭服務機器人F1。這款F1機器人不僅具備端茶送水、物品遞送、家庭整理等日常服務能力&#xff0c;還深度融合了多項教育輔助功能&#xff0c;如學習陪伴、棋類對弈、作業進度管理等&#xff0c;旨…