日志 | Spring Boot 日志配置通用規律(AI問答)

Spring Boot 日志配置通用規律。想看特定日志,怎么打開日志開關

文章目錄

  • 一、一句話總結
  • 二、AI問答版
    • 提問詞
    • AI的響應
    • 📊 Spring Boot 日志配置通用規律
      • 1. 基本語法結構
      • 2. 日志級別(從詳細到簡潔)
    • 🎯 常用日志配置分類
      • 1. Spring Cloud Gateway 相關
      • 2. Web 和 HTTP 相關
      • 3. 數據庫和SQL相關(您問的重點)
      • 4. Spring 核心框架
      • 5. Eureka 服務發現
    • 🔍 按場景推薦的日志配置
      • 場景1:網關路由調試
      • 場景2:SQL和數據庫調試
      • 場景3:完整的微服務調試
      • 場景4:性能監控
    • 🛠? 高級配置技巧
      • 1. 按環境配置不同的日志級別
      • 2. 輸出到文件和控制臺
      • 3. 使用Logback高級配置
    • 📝 快速記憶口訣
    • 🔎 如何找到正確的包名?

一、一句話總結

一句話描述就是找到要觀察的類(從異常堆棧信息中獲取類名),寫上全類名和等級。yml內打開日志的配置形如:

logging:level:
#    org.springframework.cloud.gateway: TRACE
#    org.springframework.http.server.reactive: DEBUG
#    org.springframework.cloud.netflix.eureka: DEBUG
#    com.netflix.eureka: DEBUG
#    com.netflix.discovery: DEBUG
#    com.xxx.mapper: DEBUG

二、AI問答版

提問詞

總結一下此類日志如何打開,有時我想查看SQL打印日志,但不知道怎么開,但是這類應該有規律:logging:level:com.netflix.discovery: DEBUG

AI的響應

您說得對!Spring Boot的日志配置確實有規律可循。我來為您總結一下各類日志的開啟方法。

📊 Spring Boot 日志配置通用規律

1. 基本語法結構

logging:level:# 包名或類全限定名: 日志級別com.example.service: DEBUGorg.springframework.web: INFO

2. 日志級別(從詳細到簡潔)

  • TRACE > DEBUG > INFO > WARN > ERROR > OFF

🎯 常用日志配置分類

1. Spring Cloud Gateway 相關

logging:level:org.springframework.cloud.gateway: TRACE      # 網關核心日志org.springframework.cloud.gateway.handler: DEBUGorg.springframework.cloud.gateway.route: DEBUGorg.springframework.cloud.gateway.filter: DEBUGreactor.netty: DEBUG                         # 網絡層日志

2. Web 和 HTTP 相關

logging:level:org.springframework.web: DEBUG                # Spring Web MVCorg.springframework.web.reactive: DEBUG       # WebFlux (Gateway用)org.springframework.http: DEBUG               # HTTP請求響應org.springframework.http.server.reactive: DEBUG

3. 數據庫和SQL相關(您問的重點)

logging:level:# Hibernate SQL日志org.hibernate.SQL: DEBUG                     # 顯示執行的SQL語句org.hibernate.type.descriptor.sql: TRACE     # 顯示SQL參數值org.hibernate.stat: DEBUG                    # Hibernate統計信息# JPA日志org.springframework.data.jpa: DEBUGorg.springframework.orm.jpa: DEBUG# MyBatis日志com.example.mapper: DEBUG                    # MyBatis Mapper接口org.mybatis: DEBUG# 數據庫連接池com.zaxxer.hikari: DEBUG                     # HikariCP連接池org.apache.tomcat.jdbc.pool: DEBUG           # Tomcat連接池

4. Spring 核心框架

logging:level:org.springframework.context: DEBUG           # Spring上下文org.springframework.beans: DEBUG             # Bean管理org.springframework.transaction: DEBUG       # 事務管理

5. Eureka 服務發現

logging:level:org.springframework.cloud.netflix.eureka: DEBUGcom.netflix.eureka: DEBUGcom.netflix.discovery: DEBUG

🔍 按場景推薦的日志配置

場景1:網關路由調試

logging:level:org.springframework.cloud.gateway: TRACEorg.springframework.http.server.reactive: DEBUGreactor.netty: DEBUGorg.springframework.cloud.netflix.eureka: DEBUG

場景2:SQL和數據庫調試

logging:level:org.hibernate.SQL: DEBUGorg.hibernate.type.descriptor.sql: TRACEcom.zaxxer.hikari: DEBUGorg.springframework.transaction: DEBUG

場景3:完整的微服務調試

logging:level:# 網關org.springframework.cloud.gateway: DEBUG# 數據庫org.hibernate.SQL: DEBUGorg.hibernate.type: TRACE# 服務發現org.springframework.cloud.netflix.eureka: DEBUG# Web請求org.springframework.web: DEBUGorg.springframework.web.reactive: DEBUG

場景4:性能監控

logging:level:org.hibernate.stat: DEBUG                    # Hibernate性能統計com.zaxxer.hikari: DEBUG                     # 連接池監控org.springframework.transaction: DEBUG       # 事務監控

🛠? 高級配置技巧

1. 按環境配置不同的日志級別

# application-dev.yml (開發環境)
logging:level:org.hibernate.SQL: DEBUGorg.springframework.cloud.gateway: TRACE# application-prod.yml (生產環境)
logging:level:org.hibernate.SQL: WARNorg.springframework.cloud.gateway: INFO

2. 輸出到文件和控制臺

logging:file:name: logs/gateway.log                      # 輸出到文件level:org.springframework.cloud.gateway: DEBUGpattern:console: "%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n"file: "%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n"

3. 使用Logback高級配置

創建 logback-spring.xml 進行更精細的控制。


📝 快速記憶口訣

  1. 找包名org.springframework.xxx
  2. 加級別DEBUGTRACE
  3. 看效果:觀察控制臺輸出
  4. 調精度:根據需要調整級別

🔎 如何找到正確的包名?

  1. 查看異常堆棧:從異常信息中獲取類名
  2. 使用IDE搜索:在IDE中搜索相關關鍵詞
  3. 官方文檔:查閱框架文檔中的日志配置章節
  4. 通用規律
    • Spring: org.springframework.xxx
    • Hibernate: org.hibernate.xxx
    • 數據庫: com.zaxxer.hikari, org.apache.tomcat.jdbc
    • 項目代碼: com.yourcompany.xxx

掌握了這個規律,您就可以輕松配置任何需要的日志級別了!

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

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

相關文章

DJANGO后端服務啟動報錯及解決

1.報錯信息[2025-09-05 17:08:54 0800] [23438] [INFO] Worker exiting (pid: 23438) [2025-09-05 17:08:54 0800] [23440] [ERROR] Exception in worker process Traceback (most recent call last):File "/www/SOP/lib64/python3.11/site-packages/gunicorn/arbiter.py&…

Qt 中的 Q_OBJECT 宏詳解 —— 從源碼到底層機制的全面剖析

Qt 中的 Q_OBJECT 宏詳解 —— 從源碼到底層機制的全面剖析 文章目錄Qt 中的 Q_OBJECT 宏詳解 —— 從源碼到底層機制的全面剖析摘要一、Q_OBJECT 宏是什么?二、Q_OBJECT 宏背后的源碼三、moc 工具的作用四、信號與槽調用流程五、沒有 Q_OBJECT 會怎樣?六…

GD32自學筆記:5.定時器中斷

定時器中斷功能主要是兩點:1.怎么配置的定時器中斷時間間隔;2.中斷里長什么樣一、定時器中斷配置函數直接在bsp_basic_timer.c里找到下面函數:void basic_timer_config(uint16_t pre,uint16_t per) {/* T 1/f, time T * pre,pertime (pre …

[Godot入門大全]目錄

1 免責聲明 資源分享免責聲明: 本平臺/本人所分享的各類資源(包括但不限于文字、圖片、音頻、視頻、文檔等),均來源于公開網絡環境中的可分享內容或已獲授權的傳播素材。 本平臺/本人僅出于信息交流、資源共享之目的進行傳播&…

使用 StringRedisTemplate 實現 ZSet 滾動查詢(處理相同分數場景)

1. 為什么需要改進當 ZSet 中存在相同分數 (score) 的元素時,單純使用分數作為偏移會導致數據漏查或重復。例如:多條記錄具有相同時間戳(作為分數)分頁查詢時可能跳過相同分數的元素或重復查詢相同分數的元素改進方案:…

【Android】安裝2025版AndroidStudio開發工具開發老安卓舊版App

為了開發老舊的安卓App,這里記錄一下2025版AndroidStudio的安裝過程,如果卸載以后,可以按照此文章的步驟順利重新安裝繼續使用。 文章目錄安裝包Android SDK新建項目新建頁面構建項目Gradle下載失敗構建失敗構建完成編譯失敗安裝失敗關于APP在…

Python跳過可迭代對象前部元素完全指南:從基礎到高并發系統實戰

引言:跳過前部元素的核心價值在數據處理和系統開發中,跳過可迭代對象的前部元素是常見且關鍵的操作。根據2024年數據處理報告:92%的數據清洗需要跳過文件頭部85%的日志分析需要忽略初始記錄78%的網絡協議處理需跳過頭部信息65%的機器學習訓練…

ConcurrentHashMap擴容機制

ConcurrentHashMap的擴容為了提高效率,是多線程并發的每個線程控制一部分范圍節點的擴容(根據cpu與數組長度確定控制多大范圍)有兩個核心參數sizeCtl:標記擴容狀態 負數時代表正在擴容,存儲量參與擴容的線程數,正數代表出發擴容的…

Spring Cloud Gateway 進行集群化部署

如果將 Gateway 單獨部署為一個服務而不做任何高可用處理,它確實會成為一個單點故障(SPOF, Single Point of Failure)。如果這個唯一的 Gateway 實例因為服務器宕機、應用崩潰、部署更新或其他任何原因而不可用,那么整個系統的所有…

計算機網絡:以太網中的數據傳輸

以太網中,數據的傳輸依賴于一系列標準化的技術規范,核心包括幀結構封裝、介質訪問控制機制和物理層編碼技術,具體如下: 1. 以“幀(Frame)”為基本傳輸單元 以太網在數據鏈路層將網絡層的數據包(…

元器件--USB TypC接口

USB TypC接口下圖這些都是USB接口A口與B口的區別USB A口和B口最初由USB-IF在1996年引入。根據當時的USB協議,A口主要用于主設備(如電腦),而B口則用于從設備(如打印機和攝像頭)。隨著USB-C接口的日益普及&am…

多線程之HardCodedTarget(type=OssFileClient, name=file, url=http://file)異常

多線程之HardCodedTarget(typeOssFileClient, namefile, urlhttp://file)異常 摘要: 文檔描述了多線程環境下調用Feign客戶端OssFileClient時出現的HardCodedTarget異常。異常發生在異步保存文件到ES時,Feign調用未返回預期結果而直接打印了客戶端對象。…

計算機視覺(十二):人工智能、機器學習與深度學習

人工智能 (AI):宏大的目標 人工智能是最廣泛、最宏大的概念,它的目標是讓機器能夠模仿人類的智能行為,例如: 推理:像下棋程序一樣,通過邏輯來做決策。規劃:為實現一個目標而制定步驟&#xff0c…

容器元素的滾動條回到頂部

關閉再打開后,容器元素的滾動條回到頂部解決方法:1、通過打開開發者工具(F12),找到滾動條所屬元素為 el-textarea__inner,其父類 class"el-textarea content"2、代碼,通過元素的方法 …

分布式專題——2 深入理解Redis線程模型

1 Redis 簡介 1.1 Redis 是什么? Redis 全稱 Remote Dictionary Server(遠程字典服務),是一個開源的高性能 Key-Value 數據庫; 官網:Redis - The Real-time Data Platform; 引用官網上的?個…

simd學習

如何查看cpu是否支持simd?# 檢查特定指令集 grep -o avx2 /proc/cpuinfo | head -1 # 檢查AVX2 grep -o sse4 /proc/cpuinfo | head -1 # 檢查SSE4 grep -o avx512 /proc/cpuinfo | head -1 # 檢查AVX512gcc編譯選項,增加支持simd-mavx2 -D__AVX2__SS…

LabVIEW汽車發動機振動測試

以某型號四缸汽油發動機為測試對象,借助 LabVIEW 平臺與高精度數據采集硬件,開展發動機全工況振動測試。通過實時采集缸體、曲軸箱關鍵部位振動信號,分析振動特征與故障關聯,驗證發動機運行穩定性,為后期優化設計提供數…

android 四大組件—Service

啟動服務startService//啟動服務,通過類名 Intent intent new Intent(this, WiFiAutoLinkService.class); startService(intent); //通過字符串啟動 Intent intent new Intent(); intent.setAction("com.launcher.app"); intent.setPackage("com.l…

https + 域名 + 客戶端證書訪問模式

項目使用金融云部署,對外暴露IP訪問,因安全合規要求必須使用域名訪問,但公司又不提供域名。故,改為 https 域名 客戶端證書雙向認證 訪問模式,大大提升安全性。 1. 密鑰文件類型 .key、.csr、.cer(或 .cr…

ICPC 2023 Nanjing R L 題 Elevator

[ProblemDiscription]\color{blue}{\texttt{[Problem Discription]}}[Problem Discription] 來源:洛谷。侵權則刪。 [Analysis]\color{blue}{\texttt{[Analysis]}}[Analysis] 貪心。優先運送樓層高的貨物,在能裝下的情況下盡量多裝。 因為運送貨物的代價…