Slack 與 Log 設定來源
目的
整理 Slack、Monolog、application log 相關設定來源。
詳細告警判讀與 table 分流請看 Log 與告警流程。
pro360_api_82
主要來源:
Lib/Common/Configuration.php
docker/staging/Configuration.php
Lib/Common/LogHelper.php
Lib/Common/MySlackHandler.php
Lib/Common/PDOHandler.php
Lib/Common/FatalErrorHandler.php常見 key 名稱:
CurrentLoggerLevel
slackName
slackWebhook
slackWebhook2
LOG_FILE_PATH不要在文件中貼 webhook URL。
get-lancer-php56
主要來源:
app/Lib/LogHelper.php
app/Lib/MySlackHandler.php
app/Lib/PDOHandler.php
app/Lib/EnvFactory.php
app/Config/core.php常見設定 / 規則來源:
| 項目 | 來源 |
|---|---|
| 是否掛 Slack handler | EnvFactory::getEnv() == production |
| 環境值 | Configure::read('site.environment'),未設定時預設 production |
| Slack username | app/Lib/MySlackHandler.php |
| Slack webhook | app/Lib/MySlackHandler.php 內依 channel 選擇 |
| DB log table 分流 | app/Lib/PDOHandler.php |
| fatal error handler | app/Config/core.php |
legacy webhook 是硬編碼在 MySlackHandler.php,文件不要貼 URL。
舊專案和新 API 最大差異是:legacy 一般 production 才掛 Slack handler,且 handler level 是 ERROR;new API 預設 Slack handler level 是 WARNING。所以同樣呼叫 warning(),新 API 通常會送 Slack,legacy 通常只寫 monolog_warning。
判讀重點
- new API Slack 顯示名稱通常由
slackName決定,但實際環境可能覆蓋Configuration.php。 - legacy Slack 顯示名稱與 webhook 由
app/Lib/MySlackHandler.php決定。 - new API 的
warning()/error()通常會送 Slack。 - legacy production 一般只有
error()送 Slack,warning()通常只寫monolog_warning。 - new API
info()是否寫 DB 要看CurrentLoggerLevel。 - DB 寫入 table 由 handler 與 level 決定,例如 warning / error / monthly monolog table。
和其他文件的關係
- 告警畫面怎麼看:Log 與告警流程
- 付款錯誤要看哪些 channel:quote_bid_contact_charge
- queue handler 失敗怎麼看:Queue 與 Event 系統