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 handlerEnvFactory::getEnv() == production
環境值Configure::read('site.environment'),未設定時預設 production
Slack usernameapp/Lib/MySlackHandler.php
Slack webhookapp/Lib/MySlackHandler.php 內依 channel 選擇
DB log table 分流app/Lib/PDOHandler.php
fatal error handlerapp/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。

和其他文件的關係