Как я могу отобразить исключение при использовании ExceptionHandler от Monolog?

в моем сценарии использования я хочу отобразить (при разработке) исключение, сгенерированное в моем php-приложении.

error_reporting(E_ALL);
ini_set('display_errors', '1');

...

throw new Exception();

Это работает как надо. Когда я выбрасываю исключение, я получаю его в своем http-ответе от apache (в возвращенном HTML).

Теперь я хочу использовать Монолог для регистрации. Я интегрирую его, все работает нормально, исключение заносится в файл, например, Monolog.

error_reporting(E_ALL);
ini_set('display_errors', '1');

...

$exception_log = new Logger('exception');
\Monolog\ErrorHandler::register($exception_log, false, null, false);

...

throw new Exception();

Но исключение больше не отправляется в html-часть http-ответа. Поэтому он не отображается в моем браузере, когда я делаю http-запрос.

Как я могу использовать Monolog, чтобы регистрировать мои исключения и по-прежнему «отображать» их?

2

Решение

Вам нужно добавить свой собственный обработчик исключений.

Например :

function echo_exception_handler($e) {
echo sprintf('Uncaught Exception %s: "%s" at %s line %s', get_class($e), $e->getMessage(), $e->getFile(), $e->getLine());
}
set_exception_handler('echo_exception_handler');

$exception_log = new Logger('exception');
...
3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]