云计算、AI、云原生、大数据等一站式技术学习平台

网站首页 > 教程文章 正文

Hyperf 下使用阿里云日志 SLS(阿里云srv记录如何配置)

jxf315 2025-06-28 14:47:10 教程文章 2 ℃

1. 在学习hyperf框架过程中,日志处理这一块思考了很长时间,项目有大小复杂度不同,日志的处理也就需要多一些方案。在完成了filelog、dblog后,第三方日志系统也是需要接入的。因为一直用阿里云日志sls,所以对官方的sdk进行修改,适配在hyperf使用。

2. 这也是第一次写composer包,边学边写,将官方sdk查阅一遍一遍,最终完成了(不过目前只实现了putlogs日志存储功能),后续会继续完善

3. 比较心酸的就是,阿里官方的文档、与sdk的代码实现居然不一样,导致遇到了数据编码解码问题,浪费了不少时间(编写过程中并不是直接copy)。

4. 能力有限,基础薄弱,官方sdk有些代码也没有深究为啥意义是啥能否修改,直接照用。例如:Protobuf、LogGroupList、LogGroup等

5. 看完文章是否可以点个赞!!!!

问题

阿里云文档
https://help.aliyun.com/document_detail/29026.html?spm=
a2c4g.11186623.2.8.a66874316mHoR3 有问题的地方框选了


sdk代码



由上可见,sdk与官方文档给出的不一样的三个地方,`请求地址`,`压缩类型`,`是否shard`,压缩类型要用sdk的否则出错,其余两个由于没测试目前还不知道要用文档还是sdk的。

  1. 安装

https://packagist.org/packages/yoctometre/aliyun-sls

composer require yoctometre/aliyun-sls
  1. 使用
// 1. 生成配置文件
php bin/hyperf.php vendor:publish yoctometre/aliyun-sl
// 2. putlog到阿里云sls
use Hyperf\Di\Annotation\Inject;
use Ym\AliyunSls\ClientInterface;
/**
 * @Inject
  * @var ClientInterface
 */
 protected $sls;
 // 注意不能有空置,如果有空值可以处理为0,否则无法压缩数据产生致命错误。
 $logData = ['k1'=>v1,'k2'=>v2,……];
 $this->sls->putLogs($logData);

结语

1. 第一次写copomser包

2. 第一次写博文(以前总看)

3. 希望以后成为自己的常态

最近发表
标签列表