mirror of
https://github.com/alchemy-fr/Phraseanet.git
synced 2025-10-17 23:13:15 +00:00
@@ -84,6 +84,7 @@ use MediaVorus\Media\MediaInterface;
|
||||
use MediaVorus\MediaVorus;
|
||||
use MediaVorus\MediaVorusServiceProvider;
|
||||
use Monolog\Handler\NullHandler;
|
||||
use Monolog\Handler\SyslogHandler;
|
||||
use Monolog\Logger;
|
||||
use Monolog\Processor\IntrospectionProcessor;
|
||||
use MP4Box\MP4BoxServiceProvider;
|
||||
@@ -266,6 +267,7 @@ class Application extends SilexApplication
|
||||
$this['phraseanet.exception_handler'] = $this->share(function ($app) {
|
||||
$handler = PhraseaExceptionHandler::register($app['debug']);
|
||||
$handler->setTranslator($app['translator']);
|
||||
$handler->setLogger($app['monolog']);
|
||||
|
||||
return $handler;
|
||||
});
|
||||
@@ -1051,13 +1053,8 @@ class Application extends SilexApplication
|
||||
{
|
||||
$this['monolog.name'] = 'phraseanet';
|
||||
$this['monolog.handler'] = $this->share(function () {
|
||||
return new NullHandler();
|
||||
return new SyslogHandler('phraseanet', LOG_SYSLOG, Logger::ERROR);
|
||||
});
|
||||
$this['monolog'] = $this->share($this->extend('monolog', function (Logger $logger) {
|
||||
$logger->pushProcessor(new IntrospectionProcessor());
|
||||
|
||||
return $logger;
|
||||
}));
|
||||
}
|
||||
|
||||
private function setupEventDispatcher()
|
||||
|
@@ -61,7 +61,7 @@ class ApiOauth2ErrorsSubscriber implements EventSubscriberInterface
|
||||
$msg = json_encode(['msg' => $msg, 'code' => $code]);
|
||||
$event->setResponse(new Response($msg, $code, $headers));
|
||||
} else {
|
||||
$response = $this->handler->createResponseBasedOnRequest($event->getRequest(), $event->getException());
|
||||
$response = $this->handler->createResponse($event->getException());
|
||||
$response->headers->set('Content-Type', 'text/html');
|
||||
$event->setResponse($response);
|
||||
}
|
||||
|
@@ -38,7 +38,7 @@ class PhraseaExceptionHandlerSubscriber implements EventSubscriberInterface
|
||||
return;
|
||||
}
|
||||
|
||||
$event->setResponse($this->handler->createResponseBasedOnRequest($event->getRequest(), $event->getException()));
|
||||
$event->setResponse($this->handler->createResponse($event->getException()));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -11,6 +11,8 @@
|
||||
|
||||
namespace Alchemy\Phrasea\Core;
|
||||
|
||||
use Psr\Log\LoggerInterface;
|
||||
use Psr\Log\NullLogger;
|
||||
use Symfony\Component\Debug\ExceptionHandler as SymfonyExceptionHandler;
|
||||
use Symfony\Component\Debug\Exception\FlattenException;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
@@ -21,6 +23,18 @@ class PhraseaExceptionHandler extends SymfonyExceptionHandler
|
||||
{
|
||||
private $translator;
|
||||
|
||||
private $logger;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->logger = new NullLogger();
|
||||
}
|
||||
|
||||
public function setLogger(LoggerInterface $logger)
|
||||
{
|
||||
$this->logger = $logger;
|
||||
}
|
||||
|
||||
public function setTranslator(TranslatorInterface $translator)
|
||||
{
|
||||
$this->translator = $translator;
|
||||
@@ -33,6 +47,13 @@ class PhraseaExceptionHandler extends SymfonyExceptionHandler
|
||||
|
||||
public function getContent(FlattenException $exception)
|
||||
{
|
||||
if ($exception->getStatusCode() == '500') {
|
||||
$this->logger->error($exception->getMessage(), [
|
||||
'code' => $exception->getCode(),
|
||||
'trace' => $exception->getTrace()
|
||||
]);
|
||||
}
|
||||
|
||||
switch (true) {
|
||||
case 404 === $exception->getStatusCode():
|
||||
if (null !== $this->translator) {
|
||||
|
Reference in New Issue
Block a user