Адаптер 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,
],
//...
]