veasin/ff-log-ws

WebSocket log transport for ff micro-framework.

Maintainers

Package info

github.com/veasin/ff-log-ws

pkg:composer/veasin/ff-log-ws

Statistics

Installs: 0

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

0.0.2 2026-06-29 18:33 UTC

This package is auto-updated.

Last update: 2026-06-29 18:34:54 UTC


README

WebSocket 日志传输扩展。将 log() 的日志通过 HTTP POST 实时发送到日志服务端,再由服务端广播到 WebSocket 客户端。每次调用立即发送,不缓冲不等待,适合 FrankenPHP worker 等长进程场景。

安装

composer require veasin/ff-log-ws

函数参考

ws - WebSocket 日志传输

配置 log() 函数将每次日志调用实时 HTTP POST 到指定端点。支持在现有 PSR-3 Logger 基础上叠加。

ws('http://127.0.0.1:9501/log');                    // 发送日志
ws('http://127.0.0.1:9501/log', ['timeout' => 0.1]); // 自定义超时

$config

  • timeout: float 默认 0.5 HTTP 请求超时秒数

容器配置

  • #log: callable|object - 可选,已有的 PSR-3 Logger 或闭包。ws() 会在其基础上叠加 WS 传输

多次调用 ws() 会形成调用链,每次日志调用依次经过各层发送后到达原始 Logger。

发送数据格式

{
    "app": "default",
    "logs": [
        {
            "level": "info",
            "message": "用户 {user} 登录",
            "context": {"user": "admin"}
        }
    ]
}

Demo

启动服务端

php demo/ws.php              # PHP(推荐)
php demo/ws.swoole.php       # Swoole

测试流程

终端 1 — 启动服务端,浏览器 — 打开 demo/demo.html(F12 → Console),终端 2

php demo/log.php

在浏览器 Console 中实时观察日志输出。

测试

php test/log/ws.php