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