Задать вопрос
Di9
@Di9

Как найти ошибку в lumen/laravel?

В процессе работы с lumen в случае проблемы (видимо любой, ошибка в синтаксисе php, нет подключения к дб и проч.) получаю страницу с 500 ошибкой. А в логах следующее:
PHP message: PHP Fatal error:  Uncaught TypeError: Argument 2 passed to Monolog\Logger::__construct() must 
be of the type array, object given, called in /panel/sites/vendor/laravel/lumen-framework/src/Application.php 
on line 391 and defined in /panel/sites/vendor/monolog/monolog/src/Monolog/Logger.php:141

Stack trace:
#0 /panel/sites/vendor/laravel/lumen-framework/src/Application.php(391): 
Monolog\Logger->__construct('lumen', Object(Monolog\Handler\StreamHandler))
#1 /panel/sites/vendor/illuminate/container/Container.php(746): 
Laravel\Lumen\Application->Laravel\Lumen\{closure}(Object(Laravel\Lumen\Application), Array)
#2 /panel/sites/vendor/illuminate/container/Container.php(644): 
Illuminate\Container\Container->build(Object(Closure), Array)
#3 /panel/sites/vendor/laravel/lumen-framework/src/Application.php(211): 
Illuminate\Container\Contai

Как я понял это ошибка логгера, который и должен показывать мне истинную проблему :)
Где я ошибся?

P.S.
убрал строгую проверку параметров в Logger.php и все заработало... но все-равно интересует почему это произошло?
  • Вопрос задан
  • 228 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
@ollisso
Обычно так падает всё когда ошибка в конфиге. К сожалению, но не сообщает в каком файле ошибка.

"Простой" вариант как найти - ставите xdebug и ставите брейкпойнт на нужную строку. Дальше по ветке вызова смотрите откуда оно кидает исключение и чтобы в этмо месте оно получает/что долнжо получить :)
Ответ написан
Комментировать
@Nimfus
Конструктор логгера вылетает, не хочет принять Object(Monolog\Handler\StreamHandler), массив просит зачем-то.
Похоже на проблему самого фрэймворка, стоит попробовать composer update, если не поможет - смотреть конфиг файлы приложения
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы