Yii 2 的日誌管理提供了多個日誌收集工具:
- yiilogDbTarget : 使用資料庫收集日誌
- yiilogEmailTarget: 使用郵件收集日誌
- yiilogSyslogTarget: 使用系統的 Syslog 收集日誌
上面的幾個工具除了郵件外,都不能及時的通知到運維人員或開發者。
好在釘釘提供了聊天機器人功能,使用自定義機器人的 webhook 我們可以將錯誤日誌及時的推送到相關人員。
- 獲取釘釘聊天機器人 Access Token
在使用本擴充套件之前,你需要去ding-doc.dingtalk.com/doc#/servera...獲取相關資訊。
- 安裝擴充套件
composer require saviorlv/yii2-dingtalk-exception
或者在 composer.json
中新增 saviorlv/yii2-dingtalk-exception
再此之前建議您使用阿里雲composer映象。
阿里雲映象地址為developer.aliyun.com/composer按步驟安裝即可。安裝完成後進行下一步。
- 配置 Yii 2 應用
在配置檔案中修改元件 log
:
'components' => [
......
'log' => [
'traceLevel' => YII_DEBUG ? 3 : 0,
'targets' => [
[
'class' => 'yiilogFileTarget',
'levels' => ['error', 'warning'],
],
[
'class' => 'SaviorlvLogExceptionTarget',//或者把裡面的程式碼拉出來進行自己封裝,使用陣列可以達到多個機器人輪換著傳送避免次數過多被釘釘遮蔽+使用redis佇列進行處理
'levels' => ['error', 'warning'],
'options' => [
'accessToken' => 'xxxxxxxx',
'isAtAll' => false,
'atMobiles' => ['136xxxx5134']
],
],
],
],
......
]
- 引數
‘isAtAll’ => true @所有人
‘atMobiles’ => [‘136xxxx5134’,’136xxxx5133’] @部分人員
此時當 Yii 2 程式出現 error
級別的錯誤時,釘釘群就會收到機器人傳送的錯誤日誌。
- 其他建議
建議除了監控系統報警外,可以自定義封裝釘釘傳送,達到特殊的業務處理出現問題時指定報錯資訊
5.相關擴充套件地址
本作品採用《CC 協議》,轉載必須註明作者和本文連結