SpringBoot 3+ Lombok日志框架從logback改為Log4j2

r要將Spring Boot 3項目中的日志框架從Logback切換到Log4j2,并配置按日期滾動文件和控制臺輸出,請按照以下步驟操作:

步驟 1:排除Logback并添加Log4j2依賴

pom.xml中修改依賴:

<dependencies><!-- 排除默認的Logback依賴 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><exclusions><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-logging</artifactId></exclusion></exclusions></dependency><!-- 添加Log4j2依賴 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-log4j2</artifactId></dependency><!-- 其他依賴... -->
</dependencies><!-- 可選:添加異步日志支持(如需要高性能) -->
<dependency><groupId>com.lmax</groupId><artifactId>disruptor</artifactId><version>3.4.4</version>
</dependency>

步驟 2:創建Log4j2配置文件

src/main/resources目錄下創建log4j2-spring.xml,內容如下:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN" monitorInterval="30"><!-- Powered by Moshow@zhengkai.blog.csdn.net --><Properties><Property name="LOG_PATTERN_FILE">%d{yyyy-MM-dd HH:mm:ss.SSS}{GMT+0} [%t] %-5level %logger{36} - %msg%n</Property><Property name="LOG_PATTERN_CONSOLE">%d{yyyy-MM-dd HH:mm:ss.SSS} %highlight{%-5level} [%t] %highlight{%c{1.}.%M(%L)}: %msg%n%throwable</Property><Property name="LOG_DIR" value="logs"/><Property name="LOG_FILE_NAME" value="sre_audit_log_dev"/></Properties><Appenders><!-- 控制臺輸出 --><Console name="Console" target="SYSTEM_OUT"><PatternLayout pattern="${LOG_PATTERN_CONSOLE}" disableAnsi="false" noConsoleNoAnsi="false"/></Console><!-- 按日期滾動的文件輸出 --><RollingFile name="RollingFile"fileName="${LOG_DIR}/${LOG_FILE_NAME}.log"filePattern="${LOG_DIR}/${LOG_FILE_NAME}-%d{yyyy-MM-dd}.log"><PatternLayout pattern="${LOG_PATTERN_FILE}"/><Policies><!-- 每天滾動一次 --><TimeBasedTriggeringPolicy interval="1" modulate="true"/><SizeBasedTriggeringPolicy size="50 MB" /></Policies><!-- 保留最近7天的日志 --><DefaultRolloverStrategy max="90"/></RollingFile></Appenders><Loggers><Root level="info"><AppenderRef ref="Console"/><AppenderRef ref="RollingFile"/></Root></Loggers>
</Configuration>

步驟 3:驗證配置

  1. 啟動應用:檢查控制臺是否有日志輸出。

  2. 檢查文件:查看logs/app.log是否生成,且每天會自動滾動生成新文件(如app-2023-10-01.log)。

  3. 驗證Lombok:確保@Slf4j注解生成的日志能正常工作。

高級配置(可選)

  • 異步日志:在配置文件中使用<AsyncLogger><AsyncRoot>提升性能。

  • 按大小滾動:在RollingFile中添加<SizeBasedTriggeringPolicy size="100 MB"/>,實現按大小滾動。

  • 多環境配置:使用Spring Profile,創建log4j2-spring-dev.xmllog4j2-spring-prod.xml

常見問題

  • 依賴沖突:若啟動時報SLF4J綁定沖突,檢查是否遺漏排除spring-boot-starter-logging

  • 配置路徑:確保配置文件命名為log4j2-spring.xml并放在src/main/resources下。

  • 時區問題:滾動時間基于服務器時區,可用<TimeBasedTriggeringPolicy timeZone="UTC"/>指定時區。

多環境配置

application.yaml中指定active的內容(本地模式),服務器則通過命令注入

java -jar your-app.jar --spring.profiles.active=dev
spring:profiles:active: dev
logging:config: classpath:log4j2-spring-dev.xml

然后application-dev.yaml中指定對應的文件為log4j2-spring-dev.yaml,從而形成閉環?

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

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

相關文章

①、環境準備-主流技術(IPS/FW/主備-主主快速切換)

主流技術&(IPS/FW/主備-主主快速切換&#xff09; 一、RBM主備方案 RBM-FW-P 主配置內容介紹-注釋 remote-backup group 含義&#xff1a;定義了一個遠程備份組。這表明設備支持某種形式的遠程備份功能&#xff0c;用于在設備之間同步配置或數據。data-channel interface …

量化交通擁堵

指數&#xff1a; 基于嚴重擁堵里程比的指數和基于出行時間比的指數。 評價指標是飽和度&#xff08;VC比&#xff09;&#xff0c;它表示交通量與通行能力的比值。 飽和度可分為道路飽和度和路口飽和度。道路飽和度還會進一步分級&#xff0c;有四檔和六檔之分。 城市道路和…

PDF與Markdown的量子糾纏:一場由VLM導演的文檔界奇幻秀

緣起:當格式界的"泰坦尼克號"撞上"黑客帝國" 某個月黑風高的夜晚,在"二進制酒吧"的霓虹燈下: PDF(西裝革履地晃著威士忌): “我的每一頁都像瑞士手表般精密,連華爾街的禿鷲都為我傾倒!” Markdown(穿著帶洞的拖鞋): “得了吧老古董!…

【neo4j數據導出并在其他電腦導入】

停止服務 neo4j stop 導出 neo4j-admin database dump neo4j --to-path"C:\Users\12901\Downloads\test folder" 導入 將 .dump 文件放在一個目錄中 mkdir /root/dump-directory mv /root/neo4j.dump /root/dump-directory/ 使用包含 .dump 文件的目錄路徑作為 …

前端使用WPS WebOffice 做在線文檔預覽與編輯

先附上官網 WebOffice SDK 1、在下面這個地方找到jdk&#xff0c;然后下載 按照 2、只需要把jdk下載下來&#xff0c;放到項目中&#xff0c;然后引入到項目中就可以了&#xff0c;在wps 官網創建個應用&#xff0c;然后把appId放到代碼中就可以了&#xff0c;等待后端把回調…

跨語言微服務架構(Java、Python)——“API中臺”

文章目錄 一、引言二、系統架構概述2.1 統一單點登錄&#xff08;SSO&#xff09;與權限管理設計2.2 API中臺與數據中臺的融合2.3 跨語言適配器與 JWT 認證機制 三、技術細節與工具選型3.1 SSO 系統的選型與實現3.2 微服務架構與 API 中臺的實現3.3 跨語言適配器實現與技術難點…

DeepSeek V3-0324升級:開啟人機共創新紀元

一、技術平權&#xff1a;開源協議重構AI權力格局 DeepSeek V3選擇MIT協議開源6850億參數模型&#xff0c;本質上是一場針對技術壟斷的“數字起義”。這一決策的深層影響在于&#xff1a; 商業邏輯的重構 閉源AI公司依賴API收費的商業模式面臨根本性挑戰。當頂級模型能力可通過…

QOpenGLWidget視頻畫面上繪制矩形框

一、QPainter繪制 在QOpenGLWidget中可以繪制,并且和OpenGL的內容疊在一起。paintGL里面繪制完視頻后,解鎖資源,再用QPainter繪制矩形框。這種方式靈活性最好。 void VideoGLWidget::paintGL() {glClear(GL_COLOR_BUFFER_BIT);m_program.bind();//繪制視頻數據// 解綁VAOg…

3.3 Taylor公式

1.定義 1.1 taylor公式 1.2 麥克勞林公式 1.3 推論 1.4 拉格朗日余項和皮亞諾型余項 2. 例題 3.幾種特殊函數的麥克勞林展開

CEF 給交互函數, 添加控制臺是否顯示交互參數log開關

CEF 控制臺添加一函數,枚舉 注冊的供前端使用的CPP交互函數有哪些 CEF 多進程模式時,注入函數,獲得交互信息-CSDN博客 這兩篇文章,介紹了注入函數,在控制臺中顯示 各自提供的交互函數信息。 有些場景下,我們還需要更詳細的信息,比如想知道 彼此傳遞的參數, 如果每次調…

QTcpSocket多線程連接慢問題

20250325記錄 環境&#xff1a;Qt5.14.2 64位 msvc編譯 在多線程環境下&#xff0c;使用QTcpSocket實現客戶端&#xff0c;發現在少部分電腦上&#xff0c;連接時間過長&#xff0c;定時器檢查套接字狀態時&#xff0c;發現連接處于QAbstractSocket::ConnectingState狀態。 …

IntelliJ IDEA創建Maven工程

1、創建空工程 1&#xff09;創建 2&#xff09;配置JDK和Maven 2、創建Maven工程 3、Maven工程結構簡介 1&#xff09;目錄 pom.xml 2&#xff09;窗口 4、參考 08.IDEA配置本地Maven軟件_嗶哩嗶哩_bilibili

(UI自動化測試web端)第二篇:元素定位的方法_css定位之class選擇器

看代碼里的【find_element_by_css_selector( )】( )里的表達式怎么寫&#xff1f; 文章介紹了第二種寫法class選擇器。你要根據網頁中的實際情況來判斷自己到底要用哪一種方法來進行元素定位。每種方法都要多練習&#xff0c;全都熟了之后你在工作當中使用起來元素定位時&#…

加新題了,MySQL 8.0 OCP 認證考試 題庫更新

MySQL 8.0 OCP 認證考試 題庫更新 MySQL 8.0 Database Administrator 考試科目&#xff1a;1Z0-908 近期發現&#xff0c;MySQL OCP認證考試題庫發生變化&#xff0c;出現了很多新題&#xff0c;對此&#xff0c;CUUG專門收集整理了最新版本的MySQL考試原題&#xff0c;并會給…

基于JavaWeb的圖書管理系統(SSM框架)

有需要請加文章底部Q哦 可遠程調試 基于JavaWeb的圖書管理系統(SSM框架) 一 介紹 此圖書管理系統基于Java(SSM框架)開發&#xff0c;數據庫mysql&#xff0c;前端bootstrap。系統角色分為用戶和管理員。 技術棧&#xff1a;Javaweb(SpringSpringMVCMyBatis)MavenMySQLIDEA 二…

Google Benchmark性能測試

Google Benchmark性能測試 Google Benchmark 是一個用于 C 的微基準測試框架&#xff0c;專為測量小塊代碼的性能而設計。它提供了一種簡單而強大的方式來編寫、運行和分析基準測試&#xff0c;幫助開發人員識別性能瓶頸并優化代碼。本教程將從安裝和基本用法開始&#xff0c;…

深度剖析:域名與DNS安全的全方位解讀

導語 在互聯網的龐大體系中,域名如同我們訪問網絡資源的“門牌號”,而DNS則像是將門牌號翻譯為具體地址的“翻譯官”。然而,這看似平常的域名與DNS系統,卻面臨著諸多安全風險。一旦遭受攻擊,可能導致網站無法訪問、用戶數據泄露等嚴重后果。了解域名與DNS安全知識,對保障…

CSS 的可繼承性

在面試中回答關于CSS可繼承性的問題時&#xff0c;建議采用結構化、清晰且簡潔的方式&#xff0c;展示你對這一概念的理解以及實際應用能力。以下是一個參考回答模板&#xff1a; 1. 定義和概念 “CSS的可繼承性是指某些CSS屬性可以被子元素自動繼承的特性。也就是說&#xf…

string 的接口

我們繼續來講解一些常用的string接口。 一.at接口 我們來看一個越界的問題。 我們運行之后發現這是一個斷言錯誤&#xff0c;直接就終止我們的程序了&#xff0c;不能作為異常被捕捉到&#xff0c;但是我們如果不想讓程序直接崩潰該怎么辦呢&#xff1f; 此時我們就要用到at關鍵…

DeepSeek調用API訪問,使用AnythingLLM建立本地知識庫后開放API調用,ApiFox/PostMan調用本地DeepSeek

上篇文章中我們使用AnythingLLM成功在本地部署了DeepSeek的本地知識庫&#xff0c;并且上傳了幾個文件讓DeepSeek學習&#xff0c;可點擊查看&#xff1a; 本地部署DeepSeek并使用AnythingLLM建立本地知識庫全流程&#xff0c;DeepSeek-R1:7b本地安裝部署,DeepSeek-R1本地部署…