webarchitect609 / bitrix-exception-logger
PSR-3 logger exception handling adapter for Bitrix.
Installs: 13 369
Dependents: 0
Suggesters: 0
Security: 0
Stars: 5
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/webarchitect609/bitrix-exception-logger
Requires
- php: ^7.4 || ^8.0
 - psr/log: ^1.0
 - webarchitect609/log-tools: ^1.0 || ^2.0
 
Requires (Dev)
- roave/security-advisories: dev-latest
 
Suggests
- monolog/monolog: Allows more advanced logging of the application flow
 
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,
            ],
    //...
]