PHPackages                             quansitech/qscmf-http-tracer - 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. [HTTP &amp; Networking](/categories/http)
4. /
5. quansitech/qscmf-http-tracer

ActiveLibrary[HTTP &amp; Networking](/categories/http)

quansitech/qscmf-http-tracer
============================

qscmf http client trace logger

v1.0.3(3mo ago)0100↓50%MITPHPPHP &gt;=7.2.0

Since Nov 14Pushed 3mo agoCompare

[ Source](https://github.com/quansitech/qscmf-http-tracer)[ Packagist](https://packagist.org/packages/quansitech/qscmf-http-tracer)[ RSS](/packages/quansitech-qscmf-http-tracer/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (3)Versions (5)Used By (0)

qscmf-http-tracer
=================

[](#qscmf-http-tracer)

QSCMF HTTP 客户端请求追踪日志包，用于自动记录 HTTP 请求和响应的完整信息。

功能特性
----

[](#功能特性)

- ✅ 自动记录 HTTP 请求和响应信息
- ✅ 支持文件存储和数据库存储
- ✅ 基于 Guzzle HTTP 客户端中间件
- ✅ 记录请求耗时和完整数据

安装
--

[](#安装)

```
composer require quansitech/qscmf-http-tracer
```

配置
--

[](#配置)

### 环境变量设置

[](#环境变量设置)

在 `.env` 文件中添加：

```
# 若使用数据库存储，则
# 存储接口请求日志的数据表名，如 api_requests_log，必填
QSCMF_HTTP_TRACE_LOGGER_TABLE_NAME=api_requests_log
```

### 数据库迁移

[](#数据库迁移)

包会自动注册数据库迁移文件，运行迁移命令：

```
php artisan migrate
```

快速开始
----

[](#快速开始)

### 使用数据库存储

[](#使用数据库存储)

```
use Qscmf\HttpTracer\Client\GuzzleClient;
use Qscmf\HttpTracer\Lib\LogWriter\Context;

// 创建日志记录器（数据库存储）
$writer = Context::buildWriter('db');
$logger = new RequestLogger($writer);

// 创建带追踪的 HTTP 客户端
$client = (new GuzzleClient($logger))->create([]);

// 发送 GET 请求
$response = $client->request('GET', 'https://api.example.com/users');
```

### 使用文件存储

[](#使用文件存储)

```
use Qscmf\HttpTracer\Client\GuzzleClient;
use Qscmf\HttpTracer\Lib\LogWriter\Context;

// 创建日志记录器（文件存储）
$writer = Context::buildWriter('file');
$logger = new RequestLogger($writer);

// 创建带追踪的 HTTP 客户端
$client = (new GuzzleClient($logger))->create([]);

// 发送请求
$response = $client->request('GET', 'https://api.example.com/users');
```

数据库表结构
------

[](#数据库表结构)

包会自动创建 `api_requests_log` 表（表名可配置），包含以下字段：

字段名类型说明idbigint主键 IDtrace\_idvarchar(32)唯一追踪 IDmethodvarchar(10)HTTP 方法urltext请求 URLrequest\_headerstext请求头（JSON）request\_bodytext请求体response\_status\_codeint响应状态码response\_headerstext响应头（JSON）response\_bodytext响应体duration\_msfloat请求耗时（毫秒）create\_datetimestamp创建时间update\_datetimestamp更新时间日志记录内容
------

[](#日志记录内容)

每个 HTTP 请求都会记录：

- **请求阶段**：方法、URL、请求头、请求体、时间戳
- **响应阶段**：状态码、响应头、响应体、请求耗时
- **关联信息**：通过 `trace_id` 关联请求和响应

文件存储轮转规则
--------

[](#文件存储轮转规则)

使用文件存储时，Monolog RotatingFileHandler 的轮转规则：

- **轮转周期**：按天轮转
- **最大文件数**：无限制（默认值 0）
- **日志路径**：`vendor/quansitech/qscmf-http-tracer/src/logs/`

**注意**：当前配置会无限期保留所有历史日志文件，需要定期手动清理。

###  Health Score

36

—

LowBetter than 81% of packages

Maintenance86

Actively maintained with recent releases

Popularity13

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity33

Early-stage or recently created project

 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 ~25 days

Total

4

Last Release

100d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/15a0610fee78753bdad92fd45c3506455c0fd45ae51924797b1841d260495a3f?d=identicon)[tiderjian](/maintainers/tiderjian)

![](https://www.gravatar.com/avatar/6c2b4bb10b346cb957c091d3273e3332276b5d09a29e255d387184f5dd4b5976?d=identicon)[xhiny](/maintainers/xhiny)

---

Top Contributors

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

---

Tags

httpclientloggertracethinkphpqscmf

### Embed Badge

![Health badge](/badges/quansitech-qscmf-http-tracer/health.svg)

```
[![Health](https://phpackages.com/badges/quansitech-qscmf-http-tracer/health.svg)](https://phpackages.com/packages/quansitech-qscmf-http-tracer)
```

###  Alternatives

[m6web/guzzle-http-bundle

Symfony bundle on top of Guzzle

17511.5k2](/packages/m6web-guzzle-http-bundle)[swoole/etcd-client

Grpc PHP Client base on Swoole Http2 Coroutine

1973.2k1](/packages/swoole-etcd-client)[phpro/http-tools

HTTP tools for developing more consistent HTTP implementations.

28137.8k](/packages/phpro-http-tools)[chelout/laravel-http-logger

A Laravel package to log HTTP requests, headers and sessions

272.0k](/packages/chelout-laravel-http-logger)

PHPackages © 2026

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