Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна
 

Цели логов в Yii 2

Цели логов

Цель логов - это экземпляр класса [[yii\log\Target]] или класса, унаследованного от него. Цель фильтрует сообщения логов по уровню важности и категории, а затем выгружает их в соответствующее хранилище. Например, [[yii\log\DbTarget|database target]] выгружает отфильтрованные сообщения логов в таблицу базы данных, а [[yii\log\EmailTarget|email target]] отправляет сообщения логов на заданные адреса email.



При помощи компонента приложения log возможна регистрация нескольких целей логов. Пример конфигурации приложения:

return [
    // Компонент "log" должен быть загружен на этапе предзагрузки
    'bootstrap' => ['log'],
    
    'components' => [
        'log' => [
            'targets' => [
                [
                    'class' => 'yii\log\DbTarget',
                    'levels' => ['error', 'warning'],
                ],
                [
                    'class' => 'yii\log\EmailTarget',
                    'levels' => ['error'],
                    'categories' => ['yii\db\*'],
                    'message' => [
                       'from' => [Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.'],
                       'to' => [Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.', Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.'],
                       'subject' => 'Ошибки базы данных на сайте example.com',
                    ],
                ],
            ],
        ],
    ],
];

Note: Компонент log должен быть загружен в процессе предзагрузки, тогда он сможет оперативно передавать сообщения целям логов. Поэтому он указан в массиве bootstrap.

В приведенном выше коде в свойстве [[yii\log\Dispatcher::targets]] зарегистрированы две цели логов:

  • первая цель выбирает ошибки и предупреждения и сохраняет их в базу данных;
  • вторая цель выбирает ошибки с категорией, имя которой начинается с yii\db\ и шлет сразу на два адреса email Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра. и Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра..

На данный момент, Yii содержит следующие встроенные цели логов. В документации по API подробно описана настройка и использование этих классов.

  • [[yii\log\DbTarget]]: сохраняет сообщения логов в таблицу базы данных.
  • [[yii\log\EmailTarget]]: шлет сообщения логов на заранее указанный email.
  • [[yii\log\FileTarget]]: сохраняет сообщения логов в файлы.
  • [[yii\log\SyslogTarget]]: сохраняет сообщения логов в системный лог используя функцию PHP syslog().

Дальше рассмотрим общие для этих четырех классов возможности.

Заберите ссылку на статью к себе, чтобы потом легко её найти ;)

Выберите, то, чем пользуетесь чаще всего:

Спасибо за внимание, оставайтесь на связи! Ниже ссылка на форум и обсуждение ; )


Обсудить эту статью

INFO: Вы отправляете сообщение как 'Гость'