太方便了!SpringBoot+輕量級分布式日志框架GrayLog!
兄弟們,是否曾經(jīng)歷過這樣的 "深夜驚魂":生產(chǎn)環(huán)境突然報(bào)警,用戶反饋下單失敗,而你只能對著十多臺服務(wù)器的日志文件發(fā)呆,在 grep 和 tail 命令的海洋里苦苦掙扎?如果你還在用 "一臺臺服務(wù)器登錄查日志" 的原始方式,那這篇文章絕對能讓你直呼 "救命"!
今天咱們就來聊聊如何用 SpringBoot 整合 GrayLog 這個(gè)輕量級分布式日志框架,讓日志管理從 "大海撈針" 變成 "精準(zhǔn)定位"。全程大白話講解,保證你看得懂、學(xué)得會,從此和日志焦慮說再見!
為什么需要 GrayLog?日志管理的那些痛
在單體應(yīng)用時(shí)代,日志管理相對簡單,直接在服務(wù)器上看 catalina.out 就行。但隨著微服務(wù)架構(gòu)的普及,一個(gè)簡單的用戶操作可能涉及五六個(gè)服務(wù),這些服務(wù)還可能部署在不同的服務(wù)器上。這時(shí)候傳統(tǒng)的日志查看方式就徹底歇菜了:
- 當(dāng)用戶說 "下單失敗" 時(shí),你需要知道請求經(jīng)過了哪些服務(wù)
 - 同一個(gè)訂單 ID 要在多臺服務(wù)器的日志中穿梭查找
 - 服務(wù)器數(shù)量多了以后,登錄都要花半天時(shí)間
 - 日志文件太大,grep 命令都要跑半天
 
這就像你去餐廳吃飯,菜不好吃想投訴,結(jié)果餐廳告訴你:"廚師在廚房、服務(wù)員在大廳、收銀在前臺,你自己去問吧"—— 這體驗(yàn)簡直糟糕透頂!
GrayLog 就是來解決這個(gè)問題的。它就像一個(gè) "日志中央車站",所有服務(wù)的日志都會主動送到這里,你只需要在一個(gè)地方搜索、分析、告警,效率直接提升 10 倍不止。
compared to the heavyweight ELK Stack (Elasticsearch, Logstash, Kibana), GrayLog 最大的優(yōu)勢就是輕量易用。ELK 就像一套專業(yè)攝影器材,功能強(qiáng)大但操作復(fù)雜;而 GrayLog 更像一部高端智能手機(jī),開箱即用還能滿足大多數(shù)場景需求。對于中小團(tuán)隊(duì)來說,GrayLog 部署簡單、學(xué)習(xí)成本低的特點(diǎn)簡直是福音。
環(huán)境準(zhǔn)備:Docker 一鍵部署 GrayLog
工欲善其事,必先利其器。咱們先來搭建 GrayLog 環(huán)境。這里強(qiáng)烈推薦用 Docker 部署,一行命令就能搞定,比安裝 JDK 還簡單!
前置條件
首先確保你的服務(wù)器上已經(jīng)安裝了 Docker 和 Docker Compose。如果還沒安裝,可以用下面的命令快速搞定(以 Ubuntu 為例):
# 安裝 Docker
sudo apt update
sudo apt install -y docker.io
sudo systemctl start docker
sudo systemctl enable docker
# 安裝 Docker Compose
sudo apt-get install docker-compose -y驗(yàn)證一下安裝是否成功:
docker --version
docker-compose --version看到版本號輸出就說明沒問題了。
編寫 docker-compose.yml
創(chuàng)建一個(gè)專門的目錄存放 GrayLog 配置,然后新建 docker-compose.yml 文件:
version: '3'
services:
  # MongoDB 用于存儲 GrayLog 的配置和元數(shù)據(jù)
  mongo:
    image: mongo:4.2
    volumes:
      - /data/graylog/mongo:/data/db  # 數(shù)據(jù)持久化
    networks:
      - graylog-network
    restart: always
  # Elasticsearch 用于存儲實(shí)際的日志數(shù)據(jù)
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch-oss:7.10.2
    environment:
      - http.host=0.0.0.0
      - transport.host=localhost
      - network.host=0.0.0.0
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"  # 內(nèi)存設(shè)置,根據(jù)服務(wù)器配置調(diào)整
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - /data/graylog/elasticsearch:/usr/share/elasticsearch/data
    networks:
      - graylog-network
    restart: always
  # GrayLog 主服務(wù)
  graylog:
    image: graylog/graylog:6.1.6  # 最新穩(wěn)定版
    environment:
      - GRAYLOG_PASSWORD_SECRET=yourstrongpassword  # 至少16位,用于加密密碼
      - GRAYLOG_ROOT_PASSWORD_SHA2=8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918  # admin/admin 的哈希值
      - GRAYLOG_HTTP_EXTERNAL_URI=http://你的服務(wù)器IP:9000/  # 訪問地址
      - GRAYLOG_ROOT_TIMEZONE=Asia/Shanghai  # 設(shè)置時(shí)區(qū)為上海,避免日志時(shí)間混亂
    entrypoint: /usr/bin/tini -- wait-for-it elasticsearch:9200 -- /docker-entrypoint.sh
    networks:
      - graylog-network
    restart: always
    depends_on:
      - mongo
      - elasticsearch
    ports:
      - "9000:9000"   # Web 管理界面端口
      - "12201:12201/udp"  # GELF UDP 端口,接收日志用
      - "1514:1514"   # 可選,用于接收 syslog
networks:
  graylog-network:
    driver: bridge這里有幾個(gè)關(guān)鍵參數(shù)需要注意:
- GRAYLOG_PASSWORD_SECRET:一定要設(shè)置一個(gè)復(fù)雜的隨機(jī)字符串,至少 16 個(gè)字符,這關(guān)系到系統(tǒng)安全
 - GRAYLOG_ROOT_PASSWORD_SHA2:默認(rèn)是 admin 密碼的哈希值,如果想修改密碼,可以用 echo -n "你的密碼" | sha256sum 生成新的哈希值
 - GRAYLOG_HTTP_EXTERNAL_URI:必須替換成你的服務(wù)器 IP 或域名,否則 Web 界面會有問題
 - 數(shù)據(jù)卷掛載:確保 /data/graylog 目錄有讀寫權(quán)限,否則數(shù)據(jù)無法持久化
 
啟動服務(wù)
保存好配置文件后,執(zhí)行下面的命令啟動服務(wù):
docker-compose up -d第一次啟動可能需要幾分鐘時(shí)間,因?yàn)橐$R像并初始化數(shù)據(jù)。可以用 docker-compose logs -f graylog 命令查看啟動日志,出現(xiàn) "Graylog server up and running" 就說明啟動成功了。這時(shí)候訪問 http://你的服務(wù)器IP:9000 就能看到登錄界面,默認(rèn)賬號密碼是 admin/admin。第一次登錄會強(qiáng)制你修改密碼,記得改成強(qiáng)密碼哦!
SpringBoot 集成 GrayLog:讓日志跑起來
環(huán)境搭好了,接下來就是讓我們的 SpringBoot 應(yīng)用和 GrayLog 交朋友了。這個(gè)過程就像給應(yīng)用裝一個(gè) "日志快遞盒",讓日志自動發(fā)送到 GrayLog 這個(gè) "中央倉庫"。
添加依賴
在 pom.xml 中添加 GrayLog 客戶端依賴。這里推薦使用 logstash-gelf,它就像一個(gè) "日志翻譯官",能把 SpringBoot 的日志轉(zhuǎn)換成 GrayLog 能理解的格式:
<dependency>
    <groupId>biz.paluch.logging</groupId>
    <artifactId>logstash-gelf</artifactId>
    <version>1.13.0</version>
</dependency>這個(gè)版本經(jīng)過實(shí)測,和 SpringBoot 3.x 兼容性很好,如果你用的是 SpringBoot 2.x 也可以放心使用。
配置 logback.xml
SpringBoot 默認(rèn)使用 Logback 作為日志框架,我們需要配置一下讓它把日志發(fā)送到 GrayLog。在 src/main/resources 目錄下創(chuàng)建 logback-spring.xml 文件:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <include resource="org/springframework/boot/logging/logback/defaults.xml"/>
    <include resource="org/springframework/boot/logging/logback/console-appender.xml"/>
    <!-- 配置 GrayLog 輸出器 -->
    <appender name="GRAYLOG" class="biz.paluch.logging.gelf.logback.GelfLogbackAppender">
        <!-- GrayLog 服務(wù)器地址 -->
        <host>你的GrayLog服務(wù)器IP</host>
        <!-- GELF UDP 端口,和 docker-compose 中映射的一致 -->
        <port>12201</port>
        
        <!-- 日志附加信息,會作為額外字段存儲 -->
        <additionalFields>application=你的應(yīng)用名稱,environment=prod</additionalFields>
        <!-- 日志格式配置 -->
        <encoder class="biz.paluch.logging.gelf.logback.GelfMessageEncoder">
            <!-- 最大GELF數(shù)據(jù)塊大小,508是最小值,最大值65467 -->
            <maxChunkSize>508</maxChunkSize>
            <!-- 是否壓縮日志 -->
            <useCompression>true</useCompression>
            <!-- 發(fā)送日志級別名稱(INFO/WARN/ERROR)而不是數(shù)字 -->
            <includeLevelName>true</includeLevelName>
            
            <!-- 自定義字段,會顯示在GrayLog的日志詳情中 -->
            <staticFields>
                <field>server_name=${HOSTNAME}</field>
                <field>application_name=你的應(yīng)用名稱</field>
            </staticFields>
        </encoder>
    </appender>
    <!-- 根日志配置 -->
    <root level="INFO">
        <appender-ref ref="CONSOLE"/>  <!-- 同時(shí)輸出到控制臺 -->
        <appender-ref ref="GRAYLOG"/>  <!-- 輸出到GrayLog -->
    </root>
    <!-- 可以針對特定包配置不同的日志級別 -->
    <logger name="com.yourpackage" level="DEBUG"/>
</configuration>這個(gè)配置里有幾個(gè)關(guān)鍵點(diǎn)需要根據(jù)你的實(shí)際情況修改:
- <host>:填寫你的 GrayLog 服務(wù)器 IP 地址
 - <additionalFields> 和 <staticFields>:這里的 application=你的應(yīng)用名稱 非常重要,在多服務(wù)環(huán)境下能幫你快速區(qū)分不同應(yīng)用的日志
 - server_name:會自動獲取當(dāng)前服務(wù)器 hostname,方便定位日志來源
 
配置完成后,啟動 SpringBoot 應(yīng)用,這時(shí)候應(yīng)用的日志就會同時(shí)輸出到控制臺和 GrayLog 了。
在 GrayLog 中創(chuàng)建輸入源
就像你寄快遞需要填寫收貨地址一樣,GrayLog 也需要知道如何接收日志。我們需要在 GrayLog 中創(chuàng)建一個(gè) "收件點(diǎn)"—— 也就是輸入源(Input)。
登錄 GrayLog 管理界面后,按照以下步驟操作:
- 點(diǎn)擊頂部菜單的 System → Inputs
 - 在右側(cè)的 Select input type 下拉框中選擇 GELF UDP
 - 點(diǎn)擊 Launch new input 按鈕
 - 在彈出的配置窗口中:
 
- Title:隨便起個(gè)名字,比如 "SpringBoot-Logs"
 - Bind address:保持默認(rèn)的 0.0.0.0
 - Port:填寫 12201(和 docker-compose 以及 logback 配置一致)
 - 其他選項(xiàng)保持默認(rèn)
 
- 點(diǎn)擊 Save 按鈕保存
 
創(chuàng)建成功后,你會看到輸入源狀態(tài)變成 "Running",這時(shí)候 GrayLog 就開始監(jiān)聽 12201 端口的日志數(shù)據(jù)了。如果一切正常,你的 SpringBoot 應(yīng)用啟動后,GrayLog 應(yīng)該已經(jīng)收到日志了!
GrayLog 入門使用:日志搜索不求人
日志能正常發(fā)送到 GrayLog 只是第一步,真正的價(jià)值在于如何快速找到你需要的日志。GrayLog 的搜索功能非常強(qiáng)大,學(xué)會了能讓你效率翻倍。
基本搜索操作
點(diǎn)擊頂部菜單的 Search 進(jìn)入搜索界面,這里就是日志查詢的主戰(zhàn)場:
- 時(shí)間范圍選擇:默認(rèn)是最近 5 分鐘,你可以通過右上角的時(shí)間選擇器調(diào)整,支持相對時(shí)間(如 "Last hour")和絕對時(shí)間范圍
 - 搜索框:這里輸入你的搜索條件,支持各種語法
 - 日志列表:下方會顯示符合條件的日志,最新的日志在最上面
 
試試這些常用的搜索技巧:
- 直接輸入關(guān)鍵詞:比如搜索 orderId,會匹配所有包含這個(gè)詞的日志
 - 精確查詢:用引號包裹,比如 "orderId: 123456",精確匹配這個(gè)訂單號
 - 指定字段查詢:level_name:ERROR 只看錯(cuò)誤日志;application:user-service 只看用戶服務(wù)的日志
 - 多條件組合:level_name:ERROR AND application:order-service 查找訂單服務(wù)的錯(cuò)誤日志
 - 排除條件:level_name:INFO NOT application:admin-service 排除 admin 服務(wù)的 INFO 日志
 
這些語法是不是比在服務(wù)器上敲 grep "ERROR" app.log | grep "order-service" 方便多了?
日志詳情查看
在日志列表中點(diǎn)擊任意一條日志,會展開顯示詳細(xì)信息。這里你能看到:
- message:日志內(nèi)容
 - level_name:日志級別
 - application:我們在配置中定義的應(yīng)用名稱
 - server_name:日志來源服務(wù)器
 - timestamp:日志時(shí)間
 - 還有很多自動提取的字段,如線程名、類名等
 
這些結(jié)構(gòu)化的字段讓日志分析變得非常簡單。比如你想查看某個(gè)用戶的所有操作日志,只需要搜索 userId:10086 就能找到所有相關(guān)記錄。
保存搜索條件
如果你經(jīng)常需要用某個(gè)搜索條件(比如查找所有錯(cuò)誤日志),可以點(diǎn)擊搜索框下方的 Save search 按鈕保存起來,下次直接點(diǎn)擊就能使用,不用重復(fù)輸入。
高級功能:讓 GrayLog 更懂你的業(yè)務(wù)
基礎(chǔ)的日志收集和搜索已經(jīng)能解決大部分問題,但 GrayLog 還有更多高級功能能讓日志管理更智能。
日志流(Streams):給日志分分類
當(dāng)你的服務(wù)越來越多時(shí),所有日志混在一起會很難管理。這時(shí)候可以用 "流"(Streams)功能給日志分類,就像給不同類型的郵件創(chuàng)建文件夾一樣。
創(chuàng)建一個(gè)訂單服務(wù)專用的日志流:
- 點(diǎn)擊頂部菜單的 Streams → Create stream
 - 填寫 Title:比如 "Order-Service-Logs"
 - 點(diǎn)擊 Create stream 保存
 - 在新創(chuàng)建的流頁面點(diǎn)擊 Edit rules
 - 添加規(guī)則:application equals order-service
 - 點(diǎn)擊 Set as default stream 讓符合條件的日志自動流入
 - 啟用這個(gè)流
 
這樣訂單服務(wù)的日志就會單獨(dú)存放在這個(gè)流中,你可以在 Streams 菜單中直接查看,不用每次都輸入過濾條件了。
日志處理管道(Pipelines):讓日志更智能
有時(shí)候原始日志信息不夠用,我們需要對日志進(jìn)行加工處理。比如從日志中提取訂單號、用戶 ID 等關(guān)鍵信息,方便后續(xù)搜索和分析。這時(shí)候就需要用到管道(Pipelines)功能。
假設(shè)我們的日志中有這樣的內(nèi)容:"Order created: orderId=12345, userId=67890",我們想把 orderId 和 userId 提取出來作為單獨(dú)的字段。
創(chuàng)建一個(gè)處理管道:
- 點(diǎn)擊頂部菜單的 System → Pipelines
 - 先創(chuàng)建一個(gè)管道:點(diǎn)擊 Create pipeline,填寫名稱如 "Extract-Order-Fields"
 - 創(chuàng)建一個(gè)規(guī)則:點(diǎn)擊 Manage rules → Create rule
 - 規(guī)則內(nèi)容如下:
 
rule "Extract order fields from logs"
when
  // 只處理包含 "Order created" 的日志
  contains(to_string($message.message), "Order created")
then
  // 提取 orderId
  let order_id = regex("orderId=(\\d+)", to_string($message.message)).group(1);
  set_field("order_id", order_id);
  
  // 提取 userId
  let user_id = regex("userId=(\\d+)", to_string($message.message)).group(1);
  set_field("user_id", user_id);
end- 保存規(guī)則后,回到管道頁面,點(diǎn)擊 Connect existing rules 將剛才創(chuàng)建的規(guī)則添加到管道中
 - 點(diǎn)擊 Add stage,設(shè)置 stage 為 0,然后關(guān)聯(lián)到我們的 "Order-Service-Logs" 流
 - 啟用管道
 
這樣處理后,包含訂單創(chuàng)建的日志就會自動帶上 order_id 和 user_id 字段,你可以直接用 order_id:12345 來搜索特定訂單的日志了,是不是非常方便?
告警配置:問題早知道
光有日志還不夠,我們需要在系統(tǒng)出現(xiàn)問題時(shí)及時(shí)收到通知。GrayLog 的告警功能可以幫你實(shí)現(xiàn)這一點(diǎn),就像一個(gè) 24 小時(shí)值班的監(jiān)控員。
設(shè)置一個(gè)錯(cuò)誤日志告警,當(dāng)出現(xiàn) ERROR 級別日志時(shí)發(fā)送郵件通知:
第一步:配置郵件服務(wù)器
首先需要在 GrayLog 中配置郵件發(fā)送功能。編輯 GrayLog 的配置文件(如果是 Docker 部署,需要進(jìn)入容器修改 /usr/share/graylog/data/config/graylog.conf):
# 啟用郵件通知
transport_email_enabled = true
# SMTP 服務(wù)器地址,以 163 郵箱為例
transport_email_hostname = smtp.163.com
# SMTP 端口,465 用于 SSL
transport_email_port = 465
# 啟用認(rèn)證
transport_email_use_auth = true
# 郵箱用戶名
transport_email_auth_username = your-email@163.com
# 郵箱授權(quán)碼(不是登錄密碼?。?transport_email_auth_password = your-auth-code
# 發(fā)件人郵箱
transport_email_from_email = your-email@163.com
# 啟用 SSL
transport_email_use_ssl = true
# 禁用 TLS
transport_email_use_tls = false
# 郵件主題前綴
transport_email_subject_prefix = [GrayLog 告警]修改完成后重啟 GrayLog 服務(wù):docker-compose restart graylog
第二步:創(chuàng)建告警通知
- 點(diǎn)擊頂部菜單的 Alerts → Notifications
 - 點(diǎn)擊 Create notification
 - 填寫名稱:比如 "Error-Email-Notification"
 - 類型選擇 Email notification
 - Email recipients:填寫接收告警的郵箱地址
 - 可以自定義郵件主題和內(nèi)容,支持模板變量,比如:
 
主題:[緊急] ${event.title} 在 ${event.timestamp}
內(nèi)容:
GrayLog 檢測到異常:
事件:${event.title}
時(shí)間:${event.timestamp}
描述:${event.description}
查看詳情:${event.url}- 保存通知設(shè)置
 
第三步:創(chuàng)建告警條件
- 點(diǎn)擊頂部菜單的 Alerts → Event definitions
 - 點(diǎn)擊 Create event definition
 - 填寫名稱:比如 "High-Error-Rate"
 - Event type 選擇 Aggregation
 - Search query:輸入 level_name:ERROR
 - Time window:設(shè)置時(shí)間窗口,比如 5 分鐘
 - Condition:選擇 "Count of messages" is greater than 5(5 分鐘內(nèi)出現(xiàn) 5 條以上錯(cuò)誤日志)
 - Notifications:選擇剛才創(chuàng)建的 "Error-Email-Notification"
 - 保存并啟用這個(gè)事件定義
 
這樣當(dāng)系統(tǒng)錯(cuò)誤日志增多時(shí),你就能收到郵件通知,及時(shí)處理問題,不用等到用戶投訴了。
儀表盤(Dashboards):日志可視化
數(shù)據(jù)可視化能幫助我們更直觀地了解系統(tǒng)狀態(tài)。GrayLog 的儀表盤功能可以把日志數(shù)據(jù)變成各種圖表。
創(chuàng)建一個(gè)簡單的日志統(tǒng)計(jì)儀表盤:
- 點(diǎn)擊頂部菜單的 Dashboards → Create dashboard
 - 填寫名稱:比如 "System-Status-Dashboard"
 - 點(diǎn)擊 Add widget
 - 選擇 Search result count
 - Title:填寫 "錯(cuò)誤日志數(shù)量"
 - Search query:輸入 level_name:ERROR
 - Time range:選擇 "Last 24 hours"
 - 點(diǎn)擊 Add widget
 - 用同樣的方法添加 INFO 日志數(shù)量、各服務(wù)日志占比等圖表
 
這樣你就能在一個(gè)頁面上直觀地看到系統(tǒng)的日志情況,甚至可以把儀表盤分享給團(tuán)隊(duì)成員或者投屏到監(jiān)控大屏上。
最佳實(shí)踐與避坑指南
用了一段時(shí)間 GrayLog 后,我總結(jié)了一些實(shí)用經(jīng)驗(yàn),能幫你少走彎路:
日志規(guī)范很重要
GrayLog 再強(qiáng)大,也依賴于規(guī)范的日志輸出。建議團(tuán)隊(duì)統(tǒng)一日志格式,比如:
- 關(guān)鍵操作必須記錄(如訂單創(chuàng)建、支付成功)
 - 重要業(yè)務(wù)參數(shù)必須包含(如 orderId、userId)
 - 異常日志必須打印堆棧信息(方便排查問題)
 - 避免在日志中包含敏感信息(密碼、手機(jī)號等)
 
良好的日志習(xí)慣能讓 GrayLog 的使用效果事半功倍。
注意日志量控制
日志雖然重要,但過多的日志會占用大量存儲空間和網(wǎng)絡(luò)帶寬。可以通過以下方式控制:
- 非生產(chǎn)環(huán)境適當(dāng)提高日志級別(如只輸出 WARN 及以上)
 - 對 DEBUG 級別的日志設(shè)置采樣率
 - 在 GrayLog 中設(shè)置日志保留策略:System → Indices → 編輯索引設(shè)置,設(shè)置 "Max number of indices" 或 "Max age"
 
比如設(shè)置日志保留 7 天,超過自動刪除,既能滿足問題排查需求,又不會占用太多磁盤空間。
性能優(yōu)化小技巧
如果你的日志量很大,可能會遇到 GrayLog 性能問題,試試這些優(yōu)化:
- 給 Elasticsearch 分配足夠的內(nèi)存(至少 2GB 以上)
 - 將 MongoDB 和 Elasticsearch 的數(shù)據(jù)目錄放在 SSD 上
 - 對高頻查詢的字段創(chuàng)建索引
 - 避免在高峰期執(zhí)行復(fù)雜查詢
 - 考慮使用 GrayLog 集群應(yīng)對大規(guī)模日志
 
常見問題排查
遇到日志不顯示的問題?別慌,按這個(gè)步驟排查:
- 檢查 SpringBoot 應(yīng)用是否正常啟動,日志是否輸出到控制臺
 - 檢查 logback.xml 配置中的 GrayLog 地址和端口是否正確
 - 用 telnet 你的GrayLogIP 12201 檢查端口是否開放
 - 查看 GrayLog 輸入源狀態(tài)是否為 "Running"
 - 檢查服務(wù)器防火墻是否阻止了 UDP 12201 端口
 - 查看 GrayLog 日志:docker-compose logs -f graylog 尋找錯(cuò)誤信息
 
大多數(shù)情況下都是配置錯(cuò)誤或網(wǎng)絡(luò)問題,仔細(xì)檢查就能解決。
總結(jié):日志管理的正確打開方式
看到這里,你應(yīng)該已經(jīng)掌握了 SpringBoot 整合 GrayLog 的核心技能。從環(huán)境搭建到高級功能,GrayLog 用它的輕量級和易用性,讓分布式日志管理不再是難題。
回顧一下我們學(xué)到的內(nèi)容:
- 用 Docker 快速部署 GrayLog 環(huán)境,幾分鐘就能搞定
 - 配置 SpringBoot 應(yīng)用,讓日志自動發(fā)送到 GrayLog
 - 掌握基本的日志搜索技巧,快速定位問題
 - 使用流、管道等高級功能,讓日志管理更智能
 - 設(shè)置告警和儀表盤,實(shí)現(xiàn)主動監(jiān)控
 
有了 GrayLog 這個(gè)利器,你再也不用在多臺服務(wù)器之間來回切換查日志了,也不用再擔(dān)心錯(cuò)過重要的系統(tǒng)異常。從此,日志管理可以變得輕松高效,讓你有更多時(shí)間專注于業(yè)務(wù)邏輯開發(fā)。















 
 
 















 
 
 
 