обработка ошибок — я не могу добавить часовой в php slim

Мне нужно добавить обработчик ошибок php sentry в мой проект slim 3.
как я могу это сделать?
куда следует поместить код интеграции часового?
что я делаю сейчас:

// monolog
$container['logger'] = function ($c) {
$settings = $c->get('settings')['logger'];
$logger = new Monolog\Logger($settings['name']);
$logger->pushProcessor(new Monolog\Processor\UidProcessor());
$logger->pushHandler(new Monolog\Handler\StreamHandler($settings['path'], $settings['level']));

$client = new Raven_Client(
'http://key@ip:9000/2'
);

$handler = new Monolog\Handler\RavenHandler($client);
$handler->setFormatter(new Monolog\Formatter\LineFormatter("%message% %context% %extra%\n"));

$logger->pushHandler($handler);

return $logger;
};

но я не получаю все ошибки в моей сторожевой панели.
например, доступ к неопределенным индексам массива.
Благодарю.

0

Решение

Я думаю, что лучший способ — это просто сделать следующее (я не проверял это или когда-либо использовал Slim, но, глядя на документы Slim, это способ сделать это)

В вашем index.php (которая должна быть точкой входа в приложение) сразу после require '../../vendor/autoload.php'; (автозагрузка композитора).

Добавьте код инициализации Raven:

$sentry = new Raven_Client('http://key@ip:9000/2');
$sentry->install();

Это настроит SDK на обработку (и отправку) всех ошибок, больше не требуется обработчик Monolog.

Если вы хотите интегрировать его в ErrorHandler класс, который вы создали, глядя на этот скелетный проект может дать вам несколько идей.

0

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

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

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