← Назад в словарь

PSR-3

PSR-3 — интерфейс логгера

Суть в одном предложении

PSR-3 описывает общий интерфейс для логгеров в PHP, чтобы библиотеки могли принимать любой совместимый логгер.

Краткое определение

PSR-3 (Logger Interface) — стандарт PHP-FIG, задающий интерфейс Psr\Log\LoggerInterface: методы для уровней логирования (debug, info, warning, error, critical, alert, emergency) и единый формат контекста, чтобы приложение не зависело от конкретной реализации логгера.

Оригинал и перевод

  • Язык: английский
  • Оригинал: PSR-3: Logger Interface
  • Буквальный перевод: интерфейс логгера

Синонимы и варианты написания

  • PSR-3
  • PSR3
  • Logger Interface

Происхождение

Принят PHP-FIG. Реализации: Monolog, Laravel Log, Symfony Logger и др. Пакет psr/log в Composer предоставляет только интерфейсы.

Где используется

  • Фреймворки и приложения, принимающие логгер через зависимость
  • Библиотеки, которые логируют через переданный PSR-3-логгер
  • Monolog, Laravel, Symfony и другие экосистемы

Когда это важно

При интеграции библиотек: если и фреймворк, и библиотека используют PSR-3, можно подставить один логгер (например, Monolog) и получать все логи в одном формате и хранилище.

Подробное объяснение

Интерфейс задаёт методы log($level, $message, array $context = []) и укороченные debug(), info(), warning(), error() и т.д. Уровни и сообщение — строки, контекст — массив произвольных данных. Реализация решает, куда писать (файл, syslog, сервис). Приложение зависит от интерфейса, а не от конкретного класса — это типичный Dependency Inversion.

Аналоги и связанные термины

  • PSR-4 — автозагрузка классов; пакет psr/log подключается по PSR-4
  • Monolog — популярная реализация PSR-3
  • Logger (логгер) — общее название компонента

Пример использования

«В конструктор сервиса передаём любой PSR-3-совместимый логгер — в тестах подставляем NullLogger, в проде Monolog.»

Мини‑FAQ

  • Нужно ли ставить пакет psr/log?
    Ответ: Да, если используете тип Psr\Log\LoggerInterface в коде или подключаете библиотеку, которая его требует. Пакет содержит только интерфейсы.

Смотри также

  • PSR-4
  • Monolog (реализация)
  • Interface