27cm
@27cm
TODO: Написать статус

Как заставить Logger перехватывать исключения в ZF2?

Внутри onBootstrap модуля создаю логгер:
use Zend\Log\Writer\Stream as LogWriterStream;
use Zend\Log\Formatter\Simple as LogFormatter;

$logger = new Logger(array(
    'exceptionhandler' => true,
    'errorhandler' => true,
    'fatal_error_shutdownfunction' => true,
));

$filepath = './data/logs/php/' . date('Y-m-d') . '.log';
$writer = new LogWriterStream($filepath);

$formatter = new LogFormatter(null, 'd.m.Y H:i:s');
$writer->setFormatter($formatter);

$logger->addWriter($writer);


Логгер создаётся без ошибок и создаёт файл 2014-12-04.log.

Ошибки типа "Division by zero" или "Call to undefined function", логгер успешно отлавливает и пишет в файл.

При выбрасывании какого-либо исключения, отображается страница 500 с информацией об исключении, но в файл логер ничего не пишет. Из-за чего это происходит и как заставить логгер ловить исключения?

Нашёл вот такой ответ на SO
stackoverflow.com/questions/15271250/how-to-log-zf...
По сути здесь пишут свою реализацию функции, которая куда лучше реализована в самом Logger, и которая должна использоваться, если 'exceptionhandler' == true
https://github.com/zendframework/zf2/blob/master/l...
  • Вопрос задан
  • 2374 просмотра
Пригласить эксперта
Ответы на вопрос 1
Keanor
@Keanor
Ведущий разработчик
А можно пример исключения? Некоторые исключения не отлавливаются в принципе...
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы