Springboot 配置 log4j 時的注意事項

感謝博主 https://www.cnblogs.com/fishlittle/p/17950944

依賴

  1. SpringBoot 的 starter 自帶的是 logback 日志,若要使用 log4j2 日志,需要引入對應依賴。
  2. logback 日志和 log4j2 日志都是對 slf4j 門面的實現,只能存在一個,且必須存在一個,不存在或者存在多個都會出錯。
  3. 因此,在使用 log4j2 日志時,必須要在依賴中把 logback 給 exclude 掉。 并且,使用 log4j2 日志還需要適配器 log4j-slf4j-impl,它跟 SpringBoot 的 starter 自帶的 log4j-to-slf4j 是相互沖突的,因此還需要將 log4j-to-slf4j 也 exclude 掉。
  4. 因為 SpringBoot 的 starter 中已經帶有 slf4j 門面了,因此無需再引入 slf4j 依賴。

因為 2 的原因,故 springboot-starter 的依賴需要剔除 自身 logback :

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

進行了 2 后,又因為 3,我們要單獨加入 log4j 的相關庫

<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-slf4j-impl --><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-slf4j-impl</artifactId><version>2.17.1</version><scope>test</scope></dependency><!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-api --><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-api</artifactId><version>2.17.1</version></dependency><!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core --><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-core</artifactId><version>2.17.1</version></dependency>

log4j2.xml(resources目錄下)

<?xml version="1.0" encoding="UTF-8"?>
<!--日志級別以及優先級排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL -->
<!-- Configuration 后面的 status 用于設置 log4j2 自身內部的信息輸出,可以不設置,當設置成 trace 時,可以看到 log4j2 內部各種詳細輸出-->
<configuration status="INFO"><!--先定義所有的 appender--><appenders><!--輸出日志信息到控制臺--><console name="Console" target="SYSTEM_OUT"><!--控制日志輸出的格式--><PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/></console></appenders><!--然后定義 logger,只有定義了 logger 并引入的 appender,appender 才會生效--><!--root:用于指定項目的根日志,如果沒有單獨指定 Logger,則會使用 root 作為默認的日志輸出--><loggers><root level="info"><appender-ref ref="Console"/></root></loggers>
</configuration>

Springboot 的日志配置

logging:config: classpath:log4j2.xml

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

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

相關文章

江協科技51單片機學習- p25 無源蜂鳴器

&#x1f680;write in front&#x1f680; &#x1f50e;大家好&#xff0c;我是黃桃罐頭&#xff0c;希望你看完之后&#xff0c;能對你有所幫助&#xff0c;不足請指正&#xff01;共同學習交流 &#x1f381;歡迎各位→點贊&#x1f44d; 收藏?? 留言&#x1f4dd;?…

環信IM實現小米、oppo推送詳細步驟

本文教大家集成環信IM后如何實現小米、oppo推送。 一、小米推送 步驟一、在小米開放平臺創建應用。 在 小米開放平臺 創建應用&#xff0c;開啟推送服務。詳見小米官方網站的 推送服務接入指南。 步驟二、上傳推送證書。 注冊完成后&#xff0c;需要在環信即時通訊云控制臺…

WebSocket 雙向通信

WebSocket 是一種在前端開發中用于實現雙向通信的網絡技術。它與傳統的 HTTP 請求-響應模式不同&#xff0c;允許客戶端和服務器之間實時、雙向的數據傳輸。 1. 實時性 能夠實現數據的即時推送和接收&#xff0c;無需輪詢服務器&#xff0c;大大降低了延遲。 2. 雙向通信 客…

LeetCode-刷題記錄-前綴和合集(本篇blog會持續更新哦~)

一、前綴和&#xff08;Prefix Sum&#xff09;算法概述 前綴和算法通過預先計算數組的累加和&#xff0c;可以在常數時間內回答多個區間和相關的查詢問題&#xff0c;是解決子數組和問題中的重要工具。 它的基本思想是通過預先計算和存儲數組的前綴和&#xff0c;可以在 O(1)…

初步理解六__《面向互聯網大數據的威脅情報 并行挖掘技術研究 》

初步理解 六 STIX 提出了一種標準化的網絡威脅情報格式(Structured Threat Information eXpression, STIX) gtp STIX&#xff08;Structured Threat Information eXpression&#xff09;是一種用于標準化描述和共享網絡威脅情報的格式和語言。它的設計目標是提供一個通用的…

7.8作業

一、思維導圖 二、 1】按值修改 2】按值查找&#xff0c;返回當前節點的地址 &#xff08;先不考慮重復&#xff0c;如果有重復&#xff0c;返回第一個&#xff09; 3】反轉 4】銷毀鏈表 //按值修改 int value_change(linklistptr H,datatype e,int value) {if(HNULL||empty(H…

Greenplum(二)【SQL】

前言 Greenplum 的剩余部分主要其實主要就是 DDL 和之前學的 MySQL 不大一樣&#xff0c;畢竟 Greenplum 是基于 PostgreSQL 數據庫的&#xff0c;不過那些 DML 和 MySQL、Hive 基本上大差不差&#xff0c;所以就沒有必要浪費時間了。 1、DDL 1.1、庫操作 1.1.1、創建數據庫…

python爬蟲加入進度條

安裝tqdm和requests庫 pip install tqdm -i https://pypi.tuna.tsinghua.edu.cn/simplepip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple帶進度條下載 import time # 引入time模塊&#xff0c;用于處理時間相關的功能 from tqdm import * # 從tqdm包中…

算法力扣刷題 三十六【二叉樹迭代遍歷】

前言 記錄三十五 介紹了二叉樹基礎&#xff0c;和遞歸法模版及遍歷方式&#xff1b; 遞歸&#xff1a;代碼簡單&#xff0c;但要想清楚三步&#xff1a; 確定參數和返回值&#xff1b;確定終止條件&#xff0c;并return什么&#xff1f;&#xff1b;終止條件外的邏輯&#xf…

【AI大模型】賦能兒童安全:樓層與室內定位實踐與未來發展

文章目錄 引言第一章&#xff1a;AI與室內定位技術1.1 AI技術概述1.2 室內定位技術概述1.3 樓層定位的挑戰與解決方案 第二章&#xff1a;兒童定位與安全監控的需求2.1 兒童安全問題的現狀2.2 智能穿戴設備的興起 第三章&#xff1a;技術實現細節3.1 硬件設計與選擇傳感器選擇與…

SpringSecurity中文文檔(Servlet Authorization Architecture )

Authorization 在確定了用戶將如何進行身份驗證之后&#xff0c;還需要配置應用程序的授權規則。 Spring Security 中的高級授權功能是其受歡迎的最有說服力的原因之一。無論您選擇如何進行身份驗證(無論是使用 Spring Security 提供的機制和提供者&#xff0c;還是與容器或其…

兩張圖片合并(右上角添加水印,兼容矢量圖)保留原來的顏色

無縫合并兩張圖片&#xff08;封面右上角添加logo&#xff09;-- opencv &#xff1a; 進行添加logo(水印)由于使用了cv2.seamlessClone&#xff0c;cv2.seamlessClone使用了泊松克隆&#xff08;Poisson Cloning&#xff09;&#xff0c;會根據周圍的顏色信息進行顏色調整&…

tcp并發設計

4注意&#xff1a;原始代碼&#xff0c;如果先關閉服務器端&#xff0c;再次開啟服務器的時候會報"connect: Connection refused "錯誤&#xff0c;這是因為先關服務器端&#xff0c;導致系統認為客戶端仍然在與服務器端連接造成。 可以使用setsockopt setsockopt函…

three-tile 一個開源的輕量級三維瓦片庫

three-tile 介紹 three-tile 是一個開源的輕量級三維瓦片庫&#xff0c;它基于threejs使用typescript開發&#xff0c;提供一個三維地形模型&#xff0c;能輕松給你的應用增加三維瓦片地圖。 源碼&#xff1a;https://github.com/sxguojf/three-tile 示例&#xff1a;https:/…

【TB作品】51單片機 Proteus仿真 00013紅外proteus仿真循跡避障小車

實驗報告&#xff1a;智能小車系統設計與實現 一、背景介紹 本實驗旨在設計并實現一個基于STC89C52單片機控制的智能小車系統。該系統通過超聲波傳感器進行避障&#xff0c;通過紅外接收器實現遠程控制&#xff0c;同時具備循跡功能。整個系統的核心是單片機&#xff0c;它通…

YOLOv10改進 | 損失函數篇 | InnerIoU、InnerSIoU、InnerWIoU、FocusIoU等損失函數

一、本文介紹 本文給大家帶來的是YOLOv10最新改進&#xff0c;為大家帶來最近新提出的InnerIoU的內容同時用Inner的思想結合SIoU、WIoU、GIoU、DIoU、EIOU、CIoU等損失函數&#xff0c;形成 InnerIoU、InnerSIoU、InnerWIoU、等新版本損失函數&#xff0c;同時還結合了Focus和…

LeetCode42(接雨水)[三種解法:理解動態規劃,雙指針,單調棧]

接雨水 給定 n 個非負整數表示每個寬度為 1 的柱子的高度圖&#xff0c;計算按此排列的柱子&#xff0c;下雨之后能接多少雨水。 這是一道困難題,難度確實有點層次.我們先來樸素思想走一波. 要求能接多少雨水,我們可以具化到每個硅谷,每個硅谷能存多少雨水,那么答案就是每個…

PDA:Prompt-based Distribution Alignment for Unsupervised Domain Adaptation

文章匯總 式中&#xff0c; y s y^s ys表示源域數據的one-hot ground-truth&#xff0c; K K K為類數&#xff0c; w i w_i wi?和 z ~ s \tilde{z}_s z~s?分別表示源域經過提示調優的最終文本表示和最終圖像表示的第 i i i類。 同理&#xff0c;為了進一步利用目標領域的數據…

防火墻詳解(USG6000V)

0、防火墻組網模式 防火墻能夠工作在三種模式下分別是路由模式、透明模式、旁路檢測模式、混合模式 0.1、路由模式 路由模式&#xff1a;防火墻全部以第三層對外連接&#xff0c;即接口具有IP 地址。一般都用在防火墻是邊界的場景下 防火墻需要的部署/配置&#xff1a; 接…

【入門篇】STM32尋址范圍(更新中)

寫在前面 STM32的尋址范圍涉及存儲器映射和32位地址線的使用。并且STM32的內存地址訪問是按字節編址的,即每個存儲單元是1字節(8位)。 一、尋址大小與范圍 地址線根數 地址編號(二進制) 地址編號數(即內存大小) <