log README

The project's README from github.com/php-fig/log. As one markdown file: README.md.

PSR Log

This repository holds all interfaces/classes/traits related to PSR-3.

Note that this is not a logger of its own. It is merely an interface that describes a logger. See the specification for more details.

Installation

composer require psr/log

Usage

If you need a logger, you can use the interface like this:

<?php

use Psr\Log\LoggerInterface;

class Foo
{
    private $logger;

    public function __construct(LoggerInterface $logger = null)
    {
        $this->logger = $logger;
    }

    public function doSomething()
    {
        if ($this->logger) {
            $this->logger->info('Doing work');
        }
           
        try {
            $this->doSomethingElse();
        } catch (Exception $exception) {
            $this->logger->error('Oh no!', array('exception' => $exception));
        }

        // do something useful
    }
}

You can then pick one of the implementations of the interface to get a logger.

If you want to implement the interface, you can require this package and implement Psr\Log\LoggerInterface in your code. Please read the specification text for details.

log (php-fig/log)

Searching Database…

10.4K ·GitHub
Что это такое?Это пакет со стандартом PSR-3: набор интерфейсов, классов и трейтов (в центре которых Psr\Log\LoggerInterface), описывающих, каким должен быть логгер на PHP, чтобы разные библиотеки могли использовать общий контракт логирования.
Это готовый логгер, который можно использовать сразу, или только спецификация?Это исключительно спецификация: движка логирования, записи в файлы и обработчиков здесь нет. Вам всё равно понадобится настоящий логгер, реализующий этот интерфейс.
Как на самом деле использовать это в проекте?В своём коде укажите тип Psr\Log\LoggerInterface, а затем подключите любой логгер, который его реализует. Если вы сами пишете логгер, подключите этот пакет и реализуйте интерфейс самостоятельно.
Нужно ли писать логгер с нуля, чтобы использовать этот пакет?Нет. Достаточно библиотеки логирования, совместимой с PSR-3 (например, Monolog), которая уже реализует интерфейс. Этот пакет лишь задаёт контракт, на который вы опираетесь в коде.
Пишет ли этот пакет логи сам по себе?Нет, у него вообще нет поведения во время выполнения: это строго интерфейсы, классы и трейты, описывающие контракт, а реальную работу выполняет выбранная вами реализация.
Что входит в состав помимо LoggerInterface?В пакет также входят вспомогательные классы и трейты, относящиеся к спецификации PSR-3. Они дают единую основу для реализации стандартных методов уровней логирования (debug, info, error и др.).
Зачем использовать это, а не просто выбрать библиотеку логирования?PSR-3 — это общий контракт: написав код с опорой на Psr\Log\LoggerInterface, вы можете работать с любым совместимым логгером (например, Monolog), не привязываясь к одной реализации.
Есть ли в комплекте эталонная реализация?Нет, пакет намеренно не содержит реализации. Вы подключаете собственный класс логгера, реализующий Psr\Log\LoggerInterface, как описано в полной спецификации.
Creator
php-fig
Size
0.1 MB
Stars
10.4K
Age
13y
Commits · 90 Days