TrueAsync\LogSeverity

(PHP 8.6+, true_async_server 0.6+)

Enum рівнів логування сервера. 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;
}
CaseOTel valueЩо потрапляє
OFF0нічого
DEBUG5трасування, h3-packet-trace тощо
INFO9server lifecycle (start/stop), bind retries
WARN13TLS handshake fail, peer reset, absorbed exceptions
ERROR17listener bind failed, hard protocol errors

TRACE і FATAL навмисно відсутні. TRACE не використовується; FATAL доставляється через zend_error_noreturn(E_ERROR), який і так перериває процес.

Використання

Логер вимкнено за замовчуванням. Щоб активувати, потрібні обидва:

  1. Severity, відмінний від OFF.
  2. Sink-stream через HttpServerConfig::setLogStream().
php
use TrueAsync\HttpServerConfig;
use TrueAsync\LogSeverity;

$config
    ->setLogSeverity(LogSeverity::INFO)
    ->setLogStream(STDERR);

Severity фіксується на старті — runtime-зміни не підтримуються (single-threaded lock-free модель).

Що чути на кожному рівні

php
// production
$config->setLogSeverity(LogSeverity::WARN);

// staging / debug нестабільності
$config->setLogSeverity(LogSeverity::INFO);

// глибокий debug
$config->setLogSeverity(LogSeverity::DEBUG);

DEBUG вмикає в тому числі детальне трасування HTTP/3-пакетів і інших внутрішніх потоків — корисно для діагностики, але додає CPU/IO overhead.

Див. також