Monolog是一个日志服务的库,可以作为多个框架的扩展库使用。
安装方式:
$ composer require monolog/monolog
特点就是常规的日志功能,一般只有写入txt文件中一种记录方式,但是Monolog可以提供很多不同的记录方式,其中Monolog把每一种记录方式都叫做一种渠道,今天我们要说的是Slack这种方式。
Slack是个啥呢?一句话难以说清楚,可以团队中进行沟通,可以互相聊天(主要还是工作沟通),可以接入很多其他平台的消息,Slack 已经整合了电子邮件、短信、Google Drives、Twitter、Trello、Asana、GitHub,功能很多,但是其实对于国内大部分企业来说,并没什么卵用。怎么理解呢,可以简单的理解为外国的钉钉吧,虽然有区别,但是第一次接触的话,心中印象大概就这样理解吧。
本文中主要想记录的是slack的远程日志管理功能。
可能过去我们查看日志,管理日志,或者有专门的管理日志系统,或者多数都是登录服务器命令行:tail查看日志,或者直接winscp这种可以直接可视化查看日志内容。
slack解决了什么问题呢?就是可以不用登录服务器,你电脑上安装slack这个客户端,服务器记录相应日志之后,会piu一下,发到你的这个slack客户端上,类似于钉钉来消息的时候的样子。
大概就是这样吧!
上面已经写了安装Monolog的方式,安装好了以后,相应框架的vendor中会出现monolog目录。
就是这样!可以看到,READEM.md文件中,记录了基础使用方式。不过这不是我们现在想要说的。
一、注册slack
https://slack.com/intl/zh-cn/https://slack.com/intl/zh-cn/
“创建新的工作区”进行注册,主要是获得“webhookUrl”这么个东西,样子大概:
https://hooks.slack.com/services/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
其实,获取到这个地址,就可以远程发送内容了,可以通过postman这样的客户端进行请求:
大概这样子。但是我们需要的是在框架中使用,我是用的是thinkphp5.0:
$log = new Logger('测试团队'); //名字随便起,其实并没什么用
$log->pushHandler(new SlackWebhookHandler(
'https://hooks.slack.com/services/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',
'测试团队', //非必填
'wdc', //非必填
true,
null,
false,
true,
$log::ERROR)
);
$log->error('这是我的测试数据:',['AAA'=>'BBB']);
然后收到的是:
这样的;
如果是laravel更简单一下,只需要在.env文件中配置:
LOG_SLACK_WEBHOOK_URL=https://hooks.slack.com/services/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
就可以了。具体可以查看文档:
https://learnku.com/docs/laravel/7.x/logging/7469#introduction