Merge pull request #1506 from aztech-dev/logging

Logging
This commit is contained in:
Thibaud Fabre
2015-09-29 15:49:44 +02:00
4 changed files with 26 additions and 8 deletions

View File

@@ -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()

View File

@@ -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);
}

View File

@@ -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()));
}
/**

View File

@@ -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) {