Мне нужно добавить обработчик ошибок 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;
};
но я не получаю все ошибки в моей сторожевой панели.
например, доступ к неопределенным индексам массива.
Благодарю.
Я думаю, что лучший способ — это просто сделать следующее (я не проверял это или когда-либо использовал Slim, но, глядя на документы Slim, это способ сделать это)
В вашем index.php
(которая должна быть точкой входа в приложение) сразу после require '../../vendor/autoload.php';
(автозагрузка композитора).
Добавьте код инициализации Raven:
$sentry = new Raven_Client('http://key@ip:9000/2');
$sentry->install();
Это настроит SDK на обработку (и отправку) всех ошибок, больше не требуется обработчик Monolog.
Если вы хотите интегрировать его в ErrorHandler
класс, который вы создали, глядя на этот скелетный проект может дать вам несколько идей.
Других решений пока нет …