PHPackages                             costalong/tracker - 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. costalong/tracker

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

costalong/tracker
=================

swoft 日志链路追踪库

1.0(5y ago)0129MITPHP

Since Feb 19Pushed 5y ago1 watchersCompare

[ Source](https://github.com/costa92/swoft-tracker)[ Packagist](https://packagist.org/packages/costalong/tracker)[ RSS](/packages/costalong-tracker/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (1)DependenciesVersions (2)Used By (0)

swoft-tracker
=============

[](#swoft-tracker)

###### 该库主要通过设置traceid，spanid，来实现日志链路记录，保证同一请求的链路traceid一致；

[](#该库主要通过设置traceidspanid来实现日志链路记录保证同一请求的链路traceid一致)

###### 并且增加`RedisHandler`可以将日志直接记录到redis中（协程方式）,后续可以通过ELK同步日志；另外通过日志配置增加version、interface、method、params、cost(时间消耗)的日志记录

[](#并且增加redishandler可以将日志直接记录到redis中协程方式后续可以通过elk同步日志另外通过日志配置增加versioninterfacemethodparamscost时间消耗的日志记录)

```
{"messages":"trace[HttpTraceMiddleware.php:53] HTTP END","level":200,"level_name":"info","channel":"swoft","event":"request","tid":14,"cid":14,"traceid":"5dcb6271b889c","spanid":"","version":"","interface":"\/user\/info","method":"GET","params":[],"appInfo":{"env":"local","name":null,"version":null},"cost":"231.90ms","datetime":"2019-11-13 09:54:57.855"}

```

---

要求
--

[](#要求)

该库的日志记录级别为`info`,请打开相关日志级别记录。

用法
--

[](#用法)

```
composer require nango/swoft-tracker

```

配置
--

[](#配置)

在`bean.php`文件中进行配置；

如果应用只提供RPC服务，则需要在bean.php中添加，RPC中间件来记录相关日志；如下：

```
//RPC中间件
'serviceDispatcher' => [
    'middlewares'      => [
        SwoftTracker\Middleware\RpcTraceMiddleware::class
    ],
],

```

如果应用需要对外提供HTTP服务，并且内部需要通过RPC调用其他微服务的话，则需要在bean.php中进行以下配置：

首先增加HTTP中间件：

```
'httpDispatcher'    => [
    'middlewares'      => [
        SwoftTracker\Middleware\HttpTraceMiddleware::class
    ],
],

```

另外，RPC CLient增加`extender`配置：

```
'user'              => [
    'class'   => ServiceClient::class,
    'host'    => '192.168.152.55',
        ... ...
    'packet'  => bean('rpcClientPacket'),
    'extender' => bean(SwoftTracker\Middleware\TraceExtender::class)
],

```

以上配置就可以实现，多服务之间调用时的日志链路追踪。

logger配置
--------

[](#logger配置)

使用`RedisHandler`,可以指定连接池，将业务redis库和日志库隔离开；简单配置如下：

```
    'applicationHandler' => [
        'class'     => SwoftTracker\Middleware\RedisHandler::class,
        'redisPool' => 'redis.log-pool',
        'levels'    => 'info,error,warning',
    ],

    //可以在logger配置中增加items选项来设置日志记录消耗时间，RPC请求方法等；
    'logger'             => [
        'flushRequest' => false,
        'enable'       => true,
        'json'         => true,
        'items'        => [
            'traceid',
            'spanid',
            'version',
            'interface',
            'method',
            'params',
            'appInfo',
            'cost'
        ],
    ],

```

非swoft框架 RPC调用
--------------

[](#非swoft框架-rpc调用)

如果需要在非swoft框架中通过RPC调用swoft的微服务的话，需要在`ext`中增加`traceid`参数，如下：

```
$traceid = uniqid();
$req = [
        "jsonrpc" => '2.0',
        "method" => sprintf("%s::%s::%s", $version, $class, $method),
        'params' => [12,'type'],
        'id' => '',
        'ext' => ['traceid' => $traceid],
    ];
//发起调用
... ...

```

### Author

[](#author)

- [nangge](https://github.com/nangge/)
- [costa92](https://github.com/costa92/)

###  Health Score

25

—

LowBetter than 37% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity10

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity52

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 88.9% 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

Unknown

Total

1

Last Release

1910d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/8148c7f8ba4894af278e4a028c6efb32f14b4c63dd4749c969245c4b55eb06e3?d=identicon)[costa92](/maintainers/costa92)

---

Top Contributors

[![nangge](https://avatars.githubusercontent.com/u/15973657?v=4)](https://github.com/nangge "nangge (16 commits)")[![kart-io](https://avatars.githubusercontent.com/u/111626169?v=4)](https://github.com/kart-io "kart-io (2 commits)")

---

Tags

swofttraceidswoft trace

### Embed Badge

![Health badge](/badges/costalong-tracker/health.svg)

```
[![Health](https://phpackages.com/badges/costalong-tracker/health.svg)](https://phpackages.com/packages/costalong-tracker)
```

###  Alternatives

[psr/log

Common interface for logging libraries

10.4k1.2B9.2k](/packages/psr-log)[itsgoingd/clockwork

php dev tools in your browser

5.9k27.6M94](/packages/itsgoingd-clockwork)[graylog2/gelf-php

A php implementation to send log-messages to a GELF compatible backend like Graylog2.

41838.2M138](/packages/graylog2-gelf-php)[bugsnag/bugsnag-psr-logger

Official Bugsnag PHP PSR Logger.

32132.5M2](/packages/bugsnag-bugsnag-psr-logger)[consolidation/log

Improved Psr-3 / Psr\\Log logger based on Symfony Console components.

15462.2M7](/packages/consolidation-log)[datadog/php-datadogstatsd

An extremely simple PHP datadogstatsd client

19124.6M15](/packages/datadog-php-datadogstatsd)

PHPackages © 2026

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