webarchitect609/bitrix-exception-logger

PSR-3 logger exception handling adapter for Bitrix.

v1.1.0 2023-09-27 11:48 UTC

This package is auto-updated.

Last update: 2024-03-27 12:55:52 UTC


README

Адаптер PSR-3 логгера для логирования исключений в Битрикс.

Как использовать:

1 Установить через composer

composer require webarchitect609/bitrix-exception-logger

2 Подключить автозагрузчик composer в init.php

require_once $_SERVER['DOCUMENT_ROOT'] . '/local/php_interface/vendor/autoload.php';

3 Подключить логирование исключений в .settings.php в ключе exception_handling. (В примере ниже используется Monolog, который следует предварительно установить composer require monolog/monolog)

[
    //...
    'exception_handling' =>
            [
                'value'    =>
                    [
                        'debug' => false,
                        'handled_errors_types'       => E_ERROR
                            | E_PARSE
                            | E_CORE_ERROR
                            | E_COMPILE_ERROR
                            | E_USER_ERROR
                            | E_RECOVERABLE_ERROR,
                        'exception_errors_types'     => E_ERROR
                            | E_PARSE
                            | E_CORE_ERROR
                            | E_COMPILE_ERROR
                            | E_USER_ERROR
                            | E_RECOVERABLE_ERROR,
                        'ignore_silence'             => false,
                        'assertion_throws_exception' => true,
                        'assertion_error_type'       => E_USER_ERROR,
                        'log'                        => [
                            'class_name' => \WebArch\BitrixExceptionLogger\ExceptionLogger::class,
                            'settings'   => [
                                
                                /**
                                 * Логгер типа \Psr\Log\LoggerInterface. Обязательная опция. 
                                 */
                                'logger' => new \Monolog\Logger(
                                                'BX_EXPN',
                                                new \Monolog\Handler\StreamHandler(
                                                    '/var/log/www_exception.log', \Psr\Log\LogLevel::INFO
                                                )
                                            ),
                                            
                                /**
                                 * Битриксовые типы сообщений, которые будут записываться в лог. Необязательная опция.
                                 * (по умолчанию пишутся все типы, кроме \Bitrix\Main\Diag\ExceptionHandlerLog::LOW_PRIORITY_ERROR ) 
                                 */
                                'types' => [
                                               \Bitrix\Main\Diag\ExceptionHandlerLog::UNCAUGHT_EXCEPTION,
                                               \Bitrix\Main\Diag\ExceptionHandlerLog::IGNORED_ERROR,
                                               \Bitrix\Main\Diag\ExceptionHandlerLog::FATAL,
                                           ]
                            ],
                        ],
                    ],
                'readonly' => true,
            ],
    //...
]