Fatal error: Declaration of Bitrix\Main\Diag\Logger::log

1K прочитали

Если вы получаете примерно следующую ошибку, после обновления битркиса -

Fatal error: Declaration of Bitrix\Main\Diag\Logger::log($level, Stringable|string $message, array $context = []): void must be compatible with Psr\Log\LoggerInterface::log($level, $message, array $context = []) in /data/bitrix/www/bitrix/modules/main/lib/diag/logger.php on line 59

Fatal error: Uncaught Error: Class "Bitrix\Main\Diag\FileLogger" not found in /data/bitrix/www/bitrix/modules/main/lib/diag/fileexceptionhandlerlog.php:37 Stack trace: #0 /data/bitrix/www/bitrix/modules/main/lib/application.php(488): Bitrix\Main\Diag\FileExceptionHandlerLog->initialize() #1 [internal function]: Bitrix\Main\Application->createExceptionHandlerLog() #2 /data/bitrix/www/bitrix/modules/main/lib/diag/exceptionhandler.php(214): call_user_func_array() #3 /data/bitrix/www/bitrix/modules/main/lib/diag/exceptionhandler.php(407): Bitrix\Main\Diag\ExceptionHandler->getHandlerLog() #4 /data/bitrix/www/bitrix/modules/main/lib/diag/exceptionhandler.php(275): Bitrix\Main\Diag\ExceptionHandler->writeToLog() #5 /data/bitrix/www/bitrix/modules/main/lib/diag/exceptionhandler.php(390): Bitrix\Main\Diag\ExceptionHandler->handleException() #6 [internal function]: Bitrix\Main\Diag\ExceptionHandler->handleFatalError() #7 {main} thrown in /data/bitrix/www/bitrix/modules/main/lib/diag/fileexceptionhandlerlog.php on line 37

Вариант 1.

Если можно обновить внешние пакеты, то достаточно выполнить для рабочего сайта

composer update --no-dev

или в окружении для разработки

composer update

Вариант 2.

Если нельзя обновлять пакеты по каким-то причинам

Нужно сделать следующее, изменить файл bitrix/modules/main/lib/diag/logger.php

в нем найти метод

Если вы получаете примерно следующую ошибку, после обновления битркиса - Fatal error: Declaration of Bitrix\Main\Diag\Logger::log($level, Stringable|string $message, array $context = []): void must be

и исправить на

Если вы получаете примерно следующую ошибку, после обновления битркиса - Fatal error: Declaration of Bitrix\Main\Diag\Logger::log($level, Stringable|string $message, array $context = []): void must be-2

Это временное решение чтобы сайт заработал