Логирование из «Йии» в «Сентри»

Недавно исполнился год одному маленькому, но полезному расширению с «Сентри-логером» для фреймворка «Йии-2». Бета-версию я опубликовал 29 декабря 2015 года. В то время поиск существующих решений не принёс больших успехов: имеющиеся в открытом доступе логеры либо плохо сопровождались, либо имели недостаточную нам функциональность.

Наш логер позволяет прикладывать к сообщениям теги и контекстную информацию, умеет модифицировать экстра-поля через колбек-функцию в конфигурации компонента, покрыт юнит-тестами и совместим со всеми актуальными версиями ПХП. Ничего особенного, просто аккуратное и гибкое расширение для интеграции «Йии» с «Сентри».


composer require notamedia/yii2-sentry

Репозиторий


Полезные советы

Подключая наш (или любой другой) логер, помните, что любая система может сломаться и вы должны быть готовы к такому происшествию, как недоступность «Сентри». Всегда подключайте в приложении резервный логер:

return [
    'components' => [
        'log' => [
            'traceLevel' => YII_DEBUG ? 3 : 0,
            'targets' => [
                [
                    'class' => 'notamedia\sentry\SentryTarget',
                    'dsn' => 'http://sentry/13',
                    'levels' => ['error', 'warning'],
                ],
                [
                    'class' => 'yii\log\FileTarget',
                    'levels' => ['error', 'warning'],
                ],
            ],
        ],
    ],
];

Из-за отложенного экспорта в логерах «Йии», сообщения от долгоиграющих консольных процессов (крон-задачи и воркеры) могут крайне долго не записываться в логи. Поэтому, для консольных приложений устанавливайте свойства exportInterval и flushInterval в значение 1:

return [
    'components' => [
        'log' => [
            'flushInterval' => 1,
            'targets' => [
                [
                    'class' => 'yii\log\FileTarget',
                    'exportInterval' => 1
                ],
            ],
        ],
    ],
];

В противном случае, в логах не появятся сообщения до тех пор, пока логер «Йии» не наберёт достаточное количество, что бы записать их все махом.

Читайте так же: «Протоколирование в программировании».

Поделиться
Отправить
Популярное