PHPackages                             ece2/hyperf-ext-sls - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Logging &amp; Monitoring](/categories/logging)
4. /
5. ece2/hyperf-ext-sls

ActiveLibrary[Logging &amp; Monitoring](/categories/logging)

ece2/hyperf-ext-sls
===================

Aliyun SLS Monolog handler for Hyperf 3

v2.0.0(3w ago)014MITPHPPHP &gt;=8.1

Since Nov 17Pushed 3w ago1 watchersCompare

[ Source](https://github.com/ECE2/hyperf-ext-sls)[ Packagist](https://packagist.org/packages/ece2/hyperf-ext-sls)[ RSS](/packages/ece2-hyperf-ext-sls/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (1)Dependencies (16)Versions (3)Used By (0)

Hyperf SLS 日志扩展
===============

[](#hyperf-sls-日志扩展)

面向 Hyperf 3、PHP 8.1+ 和 Monolog 3 的阿里云日志服务 Handler。组件使用官方日志服务 SDK 的 `PutLogs` 接口，以 PB 格式、AccessKey 签名和压缩方式写入 Logstore，不需要开启 Web Tracking。

安装
--

[](#安装)

```
composer require ece2/hyperf-ext-sls:^2.0
php bin/hyperf.php vendor:publish ece2/hyperf-ext-sls
```

发布命令只会创建 `config/autoload/sls.php`，不会覆盖应用现有的 `logger.php`。

配置日志 Handler
------------

[](#配置日志-handler)

将以下 Handler 合并到 `config/autoload/logger.php` 对应日志组的 `handlers` 中：

```
use Ece2\HyperfExtSls\SlsHandler;
use Monolog\Level;

return [
    'default' => [
        'handlers' => [
            [
                'class' => SlsHandler::class,
                'constructor' => [
                    'config' => config('sls'),
                    'level' => Level::Info,
                ],
            ],
        ],
    ],
];
```

至少需要配置以下环境变量：

```
SLS_ACCESS_KEY_ID=
SLS_ACCESS_KEY_SECRET=
SLS_ENDPOINT=https://cn-shanghai.log.aliyuncs.com
SLS_PROJECT=
SLS_LOG_STORE_NAME=
SLS_TOPIC=api_log
SLS_SOURCE=hyperf
```

使用 STS 临时凭据时可额外配置 `SLS_SECURITY_TOKEN`。生产环境应使用仅具有目标 Project、Logstore 写权限的 RAM 身份，不要使用主账号长期 AccessKey。

批量与连接池
------

[](#批量与连接池)

- 默认累计 100 条或等待 1 秒后调用一次 `PutLogs`。
- 达到批量阈值后在当前协程发送，不再为每条日志创建独立协程。
- HTTP 传输使用当前客户端实例自己的 Hyperf `PoolHandler`，不会修改 Tea SDK 的进程级全局配置。
- 连接池满时由当前日志调用自然等待，避免无限堆积发送协程。
- 非协程环境会立即发送；Handler `reset` 或 `close` 时会刷新未满批次。
- 发送失败的批次写入 `SLS_FALLBACK_PATH`，默认是 `runtime/logs/hyperf.log`。

可按业务量调整：

```
SLS_BATCH_SIZE=100
SLS_FLUSH_INTERVAL=1
SLS_MAX_GUZZLE_CONNECTIONS=50
SLS_CONNECT_TIMEOUT=3
SLS_TIMEOUT=5
SLS_MAX_ATTEMPTS=3
SLS_RETRY_DELAY=0.1
SLS_MAX_FIELD_LENGTH=262144
SLS_MAX_BATCH_BYTES=2097152
```

若需要把同一生产者的数据固定路由到一个 Shard，可配置 `SLS_SHARD_KEY`；未配置时使用 SLS 负载均衡写入模式。并发请求仍可能按不同顺序到达，如业务要求严格顺序，还需在调用侧串行写入。

从 1.x 升级
--------

[](#从-1x-升级)

2.x 是破坏性版本：

- 只支持 Hyperf 3、Monolog 3 和 PHP 8.1+。
- 从匿名 `PutWebtracking` 切换为鉴权 `PutLogs`，请关闭 Logstore 的 Web Tracking 开关。
- 不再发布并覆盖 `config/autoload/logger.php`，需手动合并上方 Handler 配置。
- `context` 和 Monolog Processor 写入的 `extra` 都会保存；数组和对象会转为 JSON 字符串。
- 旧版如果曾在 `vendor` 内手动修改 `write()` 方法签名，升级后应删除该补丁并重新安装依赖。

###  Health Score

44

—

FairBetter than 90% of packages

Maintenance95

Actively maintained with recent releases

Popularity8

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity57

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~1348 days

Total

2

Last Release

22d ago

Major Versions

v1.0.0 → v2.0.02026-07-28

PHP version history (2 changes)v1.0.0PHP &gt;=8.0

v2.0.0PHP &gt;=8.1

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/11607695?v=4)[ECE2](/maintainers/ECE2)[@ECE2](https://github.com/ECE2)

---

Top Contributors

[![ECE2](https://avatars.githubusercontent.com/u/11607695?v=4)](https://github.com/ECE2 "ECE2 (4 commits)")

---

Tags

phploggerSLShyperf

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StylePHP CS Fixer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/ece2-hyperf-ext-sls/health.svg)

```
[![Health](https://phpackages.com/badges/ece2-hyperf-ext-sls/health.svg)](https://phpackages.com/packages/ece2-hyperf-ext-sls)
```

###  Alternatives

[craftcms/cms

Craft CMS

3.6k3.7M3.4k](/packages/craftcms-cms)[tempest/framework

The PHP framework that gets out of your way.

2.3k37.6k21](/packages/tempest-framework)[checkout/checkout-sdk-php

Checkout.com SDK for PHP

563.6M16](/packages/checkout-checkout-sdk-php)[hyperf/amqp

A amqplib for hyperf.

231.3M82](/packages/hyperf-amqp)[eslazarev/wildberries-sdk

Wildberries OpenAPI clients (generated).

353.6k](/packages/eslazarev-wildberries-sdk)[friendsofhyperf/sentry

The sentry component for Hyperf.

1977.7k](/packages/friendsofhyperf-sentry)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
