webarchitect609/bitrix-exception-logger

Bitrix 的 PSR-3 日志异常处理适配器。

v1.1.1 2024-07-04 12:27 UTC

This package is auto-updated.

Last update: 2024-09-04 12:54:25 UTC


README

用于在 Bitrix 中记录异常的 PSR-3 日志适配器。

如何使用

1 通过 composer 安装

composer require webarchitect609/bitrix-exception-logger

2 在 init.php 中连接 composer 自动加载器

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,
            ],
    //...
]