TrueAsync\LogSeverity
(PHP 8.6+, true_async_server 0.6+)
服务器日志级别枚举。backing 值对应 OpenTelemetry Logs Data Model SeverityNumber (1..24);这里导出的是一个稳定子集。
php
namespace TrueAsync;
enum LogSeverity: int
{
case OFF = 0;
case DEBUG = 5;
case INFO = 9;
case WARN = 13;
case ERROR = 17;
}| Case | OTel 值 | 输出内容 |
|---|---|---|
OFF | 0 | 不输出 |
DEBUG | 5 | 跟踪日志,h3-packet-trace 等 |
INFO | 9 | 服务器生命周期(start/stop)、bind 重试 |
WARN | 13 | TLS 握手失败、peer reset、被吸收的异常 |
ERROR | 17 | listener bind 失败、协议级硬错误 |
TRACE与FATAL是有意没有的。TRACE没用到;FATAL走zend_error_noreturn(E_ERROR), 那条路径本身就会终止进程。
使用
Logger 默认关闭。要启用,需要同时满足两点:
- severity 不是
OFF。 - 通过
HttpServerConfig::setLogStream()设置 sink stream。
php
use TrueAsync\HttpServerConfig;
use TrueAsync\LogSeverity;
$config
->setLogSeverity(LogSeverity::INFO)
->setLogStream(STDERR);severity 在启动时固定,运行时不可切换(单线程 lock-free 模型)。
各级别能看到什么
php
// 生产
$config->setLogSeverity(LogSeverity::WARN);
// 预发 / 排查抖动
$config->setLogSeverity(LogSeverity::INFO);
// 深度调试
$config->setLogSeverity(LogSeverity::DEBUG);DEBUG 会输出 HTTP/3 包级别等详细内部流的跟踪 —— 排错时有用,但带来 CPU/IO 开销。