Установка и требования
Winter Logger ставится через Composer. Вывод логов зависит от одного опционального пакета — Monolog, — и библиотека спроектирована так, чтобы одинаково хорошо работать с ним и без него.
Системные требования
- Версия PHP — 8.3 или выше.
psr/log^3.0— интерфейсы PSR-3 (ставятся автоматически).monolog/monolog^3.5— рекомендуется. Нужен для любого реального вывода логов.ext-swoole(илиext-openswoole) — опционально. Требуется только дляCoroutineContextпод Swoole.
Установка
С Monolog — обычная конфигурация, даёт реальный вывод логов:
composer require flytachi/winter-logger monolog/monologБез Monolog — каждый логгер становится молчаливым NullLogger:
composer require flytachi/winter-loggerПочему Monolog опционален
Monolog объявлен в composer.json в секции suggest, поэтому Composer никогда не ставит его
автоматически. Потребители могут полностью отказаться от логирования — без единой правки кода.
Опциональные зависимости
| Пакет | Назначение |
|---|---|
monolog/monolog ^3.5 |
Нужен для реального вывода логов. Без него логгеры — no-op. |
ext-swoole |
Контекст, локальный для корутины, в Swoole (CoroutineContext). |
ext-openswoole |
Альтернатива ext-swoole. |
Режим без Monolog
Когда monolog/monolog не установлен, LoggerManager::channel()
возвращает Psr\Log\NullLogger для каждого канала. Ни исключений, ни предупреждений — код
просто выполняется молча. Это полезно для:
- Библиотек, которые поддерживают логирование опционально.
- Микросервисов, где логирование включается/выключается по окружению.
- Тестов, где вывод логов не важен.
Полное обоснование — и точный путь в коде — в Глубоком погружении → Monolog опционален.
Интеграция с фреймворком
Библиотека никогда не трогает getenv(), $_ENV или любое определение инфраструктуры. В
winter-kernel фреймворк читает env-переменные, определяет цель вывода
(stdout / stderr / syslog / file), выбирает подходящий ContextStorage под рантайм
(FPM / Swoole / CLI) и передаёт готовый конфиг в LoggerManager.
Как связать это самому — см. Интеграцию с фреймворком.
Дальше
- Быстрый старт — первая строка лога с контекстом за пять минут
- Ментальная модель — три идеи, на которых стоит пакет
- Справочник конфига канала — каждый ключ конфига