🧩 為什麼系統會一直印訊息?新手也能懂的「程式 Log 設定」完整教學
📌 前言:
你是否曾經遇過這種情況?
- 系統一啟動,畫面就一直跳出一堆英文訊息
- 有時訊息多到根本找不到錯誤
- 有時卻什麼都沒顯示,明明系統壞了
其實,這些問題大多來自一個關鍵設定:
👉
Logging(系統紀錄訊息的規則)
這篇文章會用 完全不需要程式背景 的方式,帶你一步步理解:
- 什麼是 Logging?
- 為什麼要分等級?
- 為什麼「開發中」跟「正式上線」要用不同設定?
- 工程師實際是怎麼設計 Logging 的?
🧠 一句話先懂什麼是 Logging
Logging 就像是系統在寫日記
系統會把「發生了什麼事」記錄下來,例如:
- 我現在啟動了
- 有人連進來了
- 這個功能出錯了
- 系統快要當掉了
工程師就是靠這些「日記」來:
- 找 Bug
- 查錯誤
- 確認系統是否正常
📊 為什麼 Log 要分「等級」?
想像你在寫日記,有不同重要程度:
| 等級 | 白話意思 |
|---|---|
| Trace | 超級瑣碎(幾乎不用) |
| Debug | 給工程師除錯用 |
| Info | 一般狀態說明 |
| Warning | 有點怪,但還能跑 |
| Error | 出錯了 |
| Critical | 快掛了 |
📌 重點概念:
設定 Log 等級 = 決定「什麼程度的事情才要記下來」
🧪 範例一:適合「開發中」的設定(訊息很多)
開發時,我們希望 看到越多細節越好
🔧 範例設定(已全新改寫)
{
"SystemLogging": {
"Levels": {
"General": "Debug",
"Framework": "Info",
"Startup": "Info"
}
}
}
👶 白話解釋
-
General: Debug
👉 自己寫的功能,連很細的過程都會記下來 -
Framework: Info
👉 系統框架的正常行為會顯示 -
Startup: Info
👉 系統啟動、關閉時會顯示訊息
🔍 實際效果
- 畫面會顯示很多訊息
-
很適合:
- 除錯
- 學習系統流程
- 查「為什麼沒照我想的跑」
🏢 範例二:適合「正式上線」的設定(安靜穩定)
系統上線後,最怕訊息太多
🔧 範例設定(已全新改寫)
{
"SystemLogging": {
"Levels": {
"General": "Info",
"WebCore": "Warning"
}
}
}
👶 白話解釋
-
General: Info
👉 只記錄「重要但正常」的事情 -
WebCore: Warning
👉 系統內部的小動作不顯示,除非真的有問題
🔍 實際效果
- 訊息少、乾淨
- 真正有問題才會跳出
- 非工程師也能看懂 Log
⚖️ 兩種設定差在哪?一張表秒懂
| 比較項目 | 開發用 | 正式上線 |
|---|---|---|
| 訊息多寡 | 非常多 | 很少 |
| 是否顯示除錯細節 | 是 | 否 |
| 效能影響 | 較高 | 低 |
| 適合誰 | 工程師 | 維運 / 客戶 |
🚨 為什麼不能在正式環境開「Debug」?
原因很實際:
- 效能變慢
- Log 檔暴增
- 可能洩漏系統資訊
- 錯誤反而更難找
👉 所以工程師通常會說一句話:
「Debug 只留在開發環境」
🧩 工程師實務最佳做法
✔ 分環境設定
- 開發環境:看得清楚
- 測試環境:接近正式
- 正式環境:只留必要訊息
✔ 訊息給「人」看,不只給電腦看
- Log 要能讓 下一個接手的人看懂
- 不只是堆英文而已
🎯 結語:你不需要懂程式,也該懂 Logging
即使你是:
- PM
- 系統使用者
- 技術主管
- 剛入行的新手
只要你碰系統,Logging 就是你理解系統狀態的窗戶。
如果你能看懂 Log:
- 問題會少一半
- 溝通會快很多
- 系統也會更穩定
留言
張貼留言