亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

SpringBoot+Docker+Graylog 如何讓錯誤自動報警

 更新時間:2025年07月04日 11:56:48   作者:小馬不敲代碼  
SpringBoot默認(rèn)使用SLF4J與Logback,支持多日志級別和配置方式,可輸出到控制臺、文件及遠(yuǎn)程服務(wù)器,集成ELK/Graylog實現(xiàn)集中監(jiān)控與錯誤報警,本文給大家介紹SpringBoot+Docker+Graylog 如何讓錯誤自動報警,感興趣的朋友一起看看吧

01 Spring Boot 默認(rèn)日志框架解析

Spring Boot 默認(rèn)采用 SLF4J(Simple Logging Facade for Java)作為日志門面,并搭配 Logback 作為默認(rèn)日志實現(xiàn)框架。

• SLF4J :作為日志門面,SLF4J 好比一個 “中間翻譯官”,為開發(fā)者提供了統(tǒng)一的日志接口。
這使得開發(fā)者能夠在不修改代碼的情況下,輕松切換不同的日志實現(xiàn)。

• Logback :作為 Log4j 的繼任者,Logback 憑借其優(yōu)越的性能、豐富的功能以及靈活的配置,成為 Spring Boot 日志模塊的得力 “助手”。

02 Spring Boot 日志級別詳解

Spring Boot 提供了多種日志級別,按從低到高依次為:

• TRACE :包含最詳細(xì)的信息,主要用于深入的程序調(diào)試。
• DEBUG :用于記錄開發(fā)階段的調(diào)試信息,幫助開發(fā)者快速定位問題。
• INFO :記錄常規(guī)的運行信息,如應(yīng)用程序啟動、配置加載等,能讓開發(fā)者清晰了解程序運行狀態(tài)。
• WARN :用于提醒潛在的問題,雖然這些問題暫時不會影響程序正常運行,但值得開發(fā)者關(guān)注。
• ERROR :記錄錯誤信息,表明程序運行過程中出現(xiàn)了需要解決的問題。
• FATAL :表示嚴(yán)重的錯誤,通常會導(dǎo)致應(yīng)用程序終止(Logback 中使用 ERROR 代替 FATAL)。

可以通過配置文件或命令行參數(shù)靈活設(shè)置日志級別,以便在不同場景下獲取合適的日志信息。

03 Spring Boot 日志配置全面攻略

Spring Boot 日志配置的靈活性,體現(xiàn)在多種配置方式上。

(一)配置文件配置
Spring Boot 支持在 application.properties 或 application.yml 中配置日志,常見配置項如下:

• 設(shè)置日志級別 :

# 設(shè)置根日志級別為 INFO
logging.level.root=INFO
# 設(shè)置 org.springframework 包相關(guān)的日志級別為 DEBUG
logging.level.org.springframework=DEBUG
# 設(shè)置 com.example 包相關(guān)的日志級別為 TRACE
logging.level.com.example=TRACE
? 指定日志文件路徑 :
# 指定日志文件名為 app.log
logging.file.name=app.log
# 指定日志文件存放路徑為 /var/logs
logging.file.path=/var/logs
? 配置日志格式 :
# 設(shè)置控制臺日志格式
logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss} - %msg%n
# 設(shè)置文件日志格式
logging.pattern.file=%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n

(二)Logback 自定義配置

對于復(fù)雜的日志配置需求,可直接使用 Logback 的配置文件。

在 src/main/resources 目錄下創(chuàng)建 logback-spring.xml 文件,示例如下:

<configuration>
    <!-- 定義一個控制臺輸出的 appender -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <!-- 設(shè)置日志輸出格式 -->
            <pattern>%d{yyyy-MM-dd HH:mm:ss} - %msg%n</pattern>
        </encoder>
    </appender>
    <!-- 設(shè)置根日志級別為 INFO,并引用 STDOUT appender -->
    <root level="INFO">
        <appender-ref ref="STDOUT" />
    </root>
</configuration>

注解:

  1. 定義了一個名為 STDOUT 的 ConsoleAppender,用于將日志輸出到控制臺。
  2. 通過 encoder 中的 pattern 設(shè)置了日志輸出的格式,包括日期時間、日志信息等。
  3. 設(shè)置根日志級別為 INFO,并將 STDOUT appender 與根日志相關(guān)聯(lián),實現(xiàn)日志的輸出與控制。

(三)環(huán)境配置
Spring Boot 支持根據(jù)不同環(huán)境(開發(fā)、測試、生產(chǎn))配置不同的日志行為。

例如:

• 在 application-dev.properties 中設(shè)置開發(fā)環(huán)境日志級別為 DEBUG,以獲取更詳細(xì)的調(diào)試信息 :
logging.level.root=DEBUG
• 在 application-online.properties 中設(shè)置生產(chǎn)環(huán)境日志級別為 WARN,減少日志對性能的影響 :
logging.level.root=WARN

04 Spring Boot 日志輸出多樣化方案

Spring Boot 支持將日志輸出到多種目標(biāo),滿足不同場景下的日志需求。

• 控制臺 :默認(rèn)情況下,日志會輸出到控制臺,方便開發(fā)者在開發(fā)和調(diào)試過程中實時查看日志信息。
• 文件 :通過配置 logging.file.name 或 logging.file.path,可以將日志輸出到文件,便于后續(xù)的日志分析和問題排查。
例如,將日志輸出到 app.log 文件中,方便查看一段時間內(nèi)的程序運行日志。
• 遠(yuǎn)程服務(wù)器 :利用 Logback 或 Log4j 的配置,可將日志發(fā)送到遠(yuǎn)程服務(wù)器(如 ELK 堆棧,Graylog),實現(xiàn)日志的集中管理和分析,有助于大規(guī)模分布式系統(tǒng)的日志監(jiān)控。

05 日志分組與監(jiān)控集成策略

Spring Boot 日志分組 :可將相關(guān)的日志記錄器分組并統(tǒng)一設(shè)置日志級別。

例如:

# 將 org.springframework.web 和 org.springframework.security 分組為 web
logging.group.web=org.springframework.web, org.springframework.security
# 設(shè)置 web 分組的日志級別為 DEBUG
logging.level.web=DEBUG

Spring Boot 日志與監(jiān)控集成 :Spring Boot 日志模塊能夠與監(jiān)控工具(如 Prometheus、Grafana)集成,實現(xiàn)日志的集中管理和分析。

其中,ELK(Elasticsearch、Logstash、Kibana)和 Graylog 堆棧是常用的日志收集、存儲和可視化解決方案。

06 Spring Boot 與 Graylog 集成實戰(zhàn)案例

(一)Spring Boot 應(yīng)用配置
• 使用 Logback 配置示例 :在 logback-spring.xml 中配置,將日志發(fā)送到 Graylog:

<appender name="GELF" class="de.siegmar.logbackgelf.GelfUdpAppender">
    <!-- 設(shè)置 Graylog 的主機地址為 localhost -->
    <graylogHost>localhost</graylogHost>
    <!-- 設(shè)置 Graylog 的端口為 12201 -->
    <graylogPort>12201</graylogPort>
</appender>
<root level="debug">
    <appender-ref ref="GELF" />
</root>

注解:

  1. 定義了一個名為 GELF 的 GelfUdpAppender,用于將日志通過 UDP 協(xié)議發(fā)送到 Graylog。
  2. 指定了 Graylog 的主機地址和端口,確保日志能夠正確地發(fā)送到目標(biāo)服務(wù)器。
  3. 設(shè)置根日志級別為 debug,并將 GELF appender 與根日志關(guān)聯(lián),實現(xiàn)日志向 Graylog 的傳輸。

• 添加依賴 :在 pom.xml 中添加以下依賴:

<dependency>
    <groupId>de.siegmar</groupId>
    <artifactId>logback-gelf</artifactId>
    <version>6.1.1</version>
</dependency>

(二)Graylog 安裝與配置
1、安裝 Docker :從官網(wǎng)下載 Docker Desktop,點擊安裝。
若在安裝過程中遇到網(wǎng)絡(luò)問題,可配置源。

也可參考官網(wǎng)命令行安裝(https://docs.docker.com/engine/install/centos/ )。

2、安裝 Graylog :Graylog 官網(wǎng)提供了 docker-compose.yml 的配置。
在安裝時,要注意選擇合適的版本,避免使用企業(yè)版還是 open edition 的混淆。

使用 Graylog 官網(wǎng)提供的 “install graylog in Docker” 配置,執(zhí)行 docker-compose up 命令,啟動 Graylog 服務(wù)。

2、進入 Graylog 服務(wù)頁面 :順利進入后,配置完 CA,正式進入 Graylog 系統(tǒng)。
特別要注意配置 inputs,選擇 GELF UDP,以確保 Spring Boot 應(yīng)用的日志能夠順利傳輸?shù)?Graylog 服務(wù)器。

對應(yīng)的 logback-spring.xml 文件配置如下:

<configuration>
    <appender name="GELF" class="de.siegmar.logbackgelf.GelfUdpAppender">
        <!-- 設(shè)置 Graylog 的主機地址為 127.0.0.1 -->
        <graylogHost>127.0.0.1</graylogHost>
        <!-- 設(shè)置 Graylog 的端口為 12201 -->
        <graylogPort>12201</graylogPort>
    </appender>
    <root level="info">
        <appender-ref ref="GELF"/>
    </root>
</configuration>

通過以上配置,Spring Boot 應(yīng)用的日志將順利上傳到 Graylog 服務(wù)器,無需再去 Docker 服務(wù)器里尋找對應(yīng)的日志文件,大大提高了日志管理的便捷性和效率。

到此這篇關(guān)于SpringBoot+Docker+Graylog - 讓錯誤自動報警的文章就介紹到這了,更多相關(guān)SpringBoot Docker Graylog錯誤自動報警內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解MyBatis延遲加載是如何實現(xiàn)的

    詳解MyBatis延遲加載是如何實現(xiàn)的

    MyBatis 的延遲加載(懶加載)特性允許在需要使用關(guān)聯(lián)對象數(shù)據(jù)時才進行加載,而不是在執(zhí)行主查詢時就加載所有相關(guān)數(shù)據(jù),我們將通過以下幾個方面來深入了解MyBatis的延遲加載實現(xiàn)機制,需要的朋友可以參考下
    2024-07-07
  • Java的MyBatis+Spring框架中使用數(shù)據(jù)訪問對象DAO模式的方法

    Java的MyBatis+Spring框架中使用數(shù)據(jù)訪問對象DAO模式的方法

    Data Access Object數(shù)據(jù)訪問對象模式在Java操作數(shù)據(jù)庫部分的程序設(shè)計中經(jīng)常被使用到,這里我們就來看一下Java的MyBatis+Spring框架中使用數(shù)據(jù)訪問對象DAO模式的方法:
    2016-06-06
  • Springboot ApplicationRunner的使用解讀

    Springboot ApplicationRunner的使用解讀

    這篇文章主要介紹了Springboot ApplicationRunner的使用解讀,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • IDEA控制臺日志中文亂碼解決方案(好用!)

    IDEA控制臺日志中文亂碼解決方案(好用!)

    這篇文章主要給大家介紹了關(guān)于IDEA控制臺日志中文亂碼解決的相關(guān)資料,平常的開發(fā)中,我們通常會用到日志打印進行開發(fā),文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-07-07
  • Java隨機數(shù)算法原理與實現(xiàn)方法實例詳解

    Java隨機數(shù)算法原理與實現(xiàn)方法實例詳解

    這篇文章主要介紹了Java隨機數(shù)算法原理與實現(xiàn)方法,簡單分析了隨機數(shù)算法的原理并結(jié)合具體實例形式給出了java編程計算隨機數(shù)的具體操作技巧,需要的朋友可以參考下
    2017-09-09
  • 關(guān)于logback.xml和logback-spring.xml的區(qū)別及說明

    關(guān)于logback.xml和logback-spring.xml的區(qū)別及說明

    這篇文章主要介紹了關(guān)于logback.xml和logback-spring.xml的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Java中MapStruct的使用詳解

    Java中MapStruct的使用詳解

    這篇文章主要介紹了Java中MapStruct的使用詳解,mapstruct,全稱是org.mapstruct.Mapper, 是將接口或抽象類標(biāo)記為映射器,并通過MapStruct為這個接口或者抽象類生成一個實現(xiàn)類,大大簡化了Java bean類型之間轉(zhuǎn)換,需要的朋友可以參考下
    2023-09-09
  • RocketMQ消息生產(chǎn)者是如何選擇Broker示例詳解

    RocketMQ消息生產(chǎn)者是如何選擇Broker示例詳解

    這篇文章主要為大家介紹了RocketMQ消息生產(chǎn)者是如何選擇Broker示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • Spring Cloud Zuul的重試配置詳解

    Spring Cloud Zuul的重試配置詳解

    這篇文章主要介紹了Spring Cloud Zuul的重試配置詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • Spring實戰(zhàn)之使用注解實現(xiàn)聲明式事務(wù)操作示例

    Spring實戰(zhàn)之使用注解實現(xiàn)聲明式事務(wù)操作示例

    這篇文章主要介紹了Spring實戰(zhàn)之使用注解實現(xiàn)聲明式事務(wù)操作,結(jié)合實例形式詳細(xì)分析了spring使用注解實現(xiàn)聲明式事務(wù)相關(guān)配置、接口實現(xiàn)與使用技巧,需要的朋友可以參考下
    2020-01-01

最新評論