Yii 2 的日志管理提供了多个日志收集工具:
-
yii\log\DbTarget
: 使用数据库收集日志 -
yii\log\EmailTarget
: 使用邮件收集日志 -
yii\log\SyslogTarget
: 使用系统的 Syslog 收集日志
上面的几个工具除了邮件外,都不能及时的通知到运维人员或开发者。
好在钉钉提供了聊天机器人功能,使用自定义机器人的 webhook 我们可以将错误日志及时的推送到相关人员。
获取钉钉聊天机器人 Access Token
根据钉钉官方文档为群聊添加自定义机器人 https://open-doc.dingtalk.com/docs/doc.htm?&treeId=257&articleId=105735&docType=1,得到 Webhook 地址https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxx
, 聊天机器人 Access Token 即?access_token=
后面的内容。配置 Yii 2 应用
在配置文件中修改组件log
:
'log' => [
'traceLevel' => YII_DEBUG ? 3 : 0,
'targets' => [
// ...
[
'class' => 'iPaya\DingTalk\Log\DingTalkTarget',
'levels' => ['error'],
'robot' => [
'accessToken' => '<你的钉钉聊天机器人 Access Token>'
]
],
// ...
],
],
此时当 Yii 2 程序出现 error
级别的错误时,钉钉群就会收到机器人发送的错误日志。