Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
| Total | |
0.00% |
0 / 1 |
|
90.00% |
9 / 10 |
CRAP | |
84.21% |
32 / 38 |
| LogListener | |
0.00% |
0 / 1 |
|
90.00% |
9 / 10 |
17.01 | |
84.21% |
32 / 38 |
| __construct | |
100.00% |
1 / 1 |
1 | |
100.00% |
2 / 2 |
|||
| setLogger | |
100.00% |
1 / 1 |
1 | |
100.00% |
2 / 2 |
|||
| onKernelRequestEarly | |
100.00% |
1 / 1 |
2 | |
100.00% |
4 / 4 |
|||
| onKernelRequest | |
100.00% |
1 / 1 |
2 | |
100.00% |
5 / 5 |
|||
| onKernelController | |
100.00% |
1 / 1 |
2 | |
100.00% |
5 / 5 |
|||
| onKernelResponse | |
100.00% |
1 / 1 |
2 | |
100.00% |
5 / 5 |
|||
| onKernelTerminate | |
100.00% |
1 / 1 |
1 | |
100.00% |
3 / 3 |
|||
| onKernelException | |
0.00% |
0 / 1 |
4.94 | |
40.00% |
4 / 10 |
|||
| getSubscribedEvents | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
| getRoute | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
| <?php | |
| namespace Eccube\EventListener; | |
| use Psr\Log\LoggerAwareInterface; | |
| use Psr\Log\LoggerInterface; | |
| use Symfony\Component\EventDispatcher\EventSubscriberInterface; | |
| use Symfony\Component\HttpKernel\Event\FilterControllerEvent; | |
| use Symfony\Component\HttpKernel\Event\FilterResponseEvent; | |
| use Symfony\Component\HttpKernel\Event\GetResponseEvent; | |
| use Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent; | |
| use Symfony\Component\HttpKernel\Event\PostResponseEvent; | |
| use Symfony\Component\HttpKernel\Exception\HttpExceptionInterface; | |
| use Symfony\Component\HttpKernel\KernelEvents; | |
| /** | |
| * ログ出力リスナー | |
| * | |
| * @package Eccube\EventListener | |
| */ | |
| class LogListener implements EventSubscriberInterface, LoggerAwareInterface | |
| { | |
| /** | |
| * @var LoggerInterface | |
| */ | |
| protected $logger; | |
| public function __construct(LoggerInterface $logger) | |
| { | |
| $this->setLogger($logger); | |
| } | |
| public function setLogger(LoggerInterface $logger) | |
| { | |
| $this->logger = $logger; | |
| } | |
| /** | |
| * @param GetResponseEvent $event | |
| */ | |
| public function onKernelRequestEarly(GetResponseEvent $event) | |
| { | |
| if (!$event->isMasterRequest()) { | |
| return; | |
| } | |
| $this->logger->info('INIT'); | |
| } | |
| /** | |
| * @param GetResponseEvent $event | |
| */ | |
| public function onKernelRequest(GetResponseEvent $event) | |
| { | |
| if (!$event->isMasterRequest()) { | |
| return; | |
| } | |
| $route = $this->getRoute($event->getRequest()); | |
| $this->logger->info('PROCESS START', array($route)); | |
| } | |
| /** | |
| * @param FilterControllerEvent $event | |
| */ | |
| public function onKernelController(FilterControllerEvent $event) | |
| { | |
| if (!$event->isMasterRequest()) { | |
| return; | |
| } | |
| $route = $this->getRoute($event->getRequest()); | |
| $this->logger->info('LOGIC START', array($route)); | |
| } | |
| /** | |
| * @param FilterResponseEvent $event | |
| */ | |
| public function onKernelResponse(FilterResponseEvent $event) | |
| { | |
| if (!$event->isMasterRequest()) { | |
| return; | |
| } | |
| $route = $this->getRoute($event->getRequest()); | |
| $this->logger->info('LOGIC END', array($route)); | |
| } | |
| /** | |
| * @param PostResponseEvent $event | |
| */ | |
| public function onKernelTerminate(PostResponseEvent $event) | |
| { | |
| $route = $this->getRoute($event->getRequest()); | |
| $this->logger->info('PROCESS END', array($route)); | |
| } | |
| /** | |
| * @param GetResponseForExceptionEvent $event | |
| */ | |
| public function onKernelException(GetResponseForExceptionEvent $event) | |
| { | |
| $e = $event->getException(); | |
| if ($e instanceof HttpExceptionInterface && $e->getStatusCode() < 500) { | |
| $this->logger->info($e->getMessage(), array($e->getStatusCode())); | |
| } else { | |
| $message = sprintf( | |
| '%s: %s (uncaught exception) at %s line %s', | |
| get_class($e), | |
| $e->getMessage(), | |
| $e->getFile(), | |
| $e->getLine() | |
| ); | |
| $this->logger->error($message, array('exception' => $e)); | |
| } | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public static function getSubscribedEvents() | |
| { | |
| return array( | |
| KernelEvents::REQUEST => array( | |
| // Application::initRenderingで、フロント/管理画面の判定が行われた後に実行 | |
| array('onKernelRequestEarly', 500), | |
| // SecurityServiceProviderで、認証処理が完了した後に実行. | |
| array('onKernelRequest', 6), | |
| ), | |
| KernelEvents::RESPONSE => array('onKernelResponse', 0), | |
| KernelEvents::CONTROLLER => array('onKernelController', 0), | |
| KernelEvents::TERMINATE => array('onKernelTerminate', 0), | |
| /* | |
| * Priority -4 is used to come after those from SecurityServiceProvider (0) | |
| * but before the error handlers added with Silex\Application::error (defaults to -8) | |
| */ | |
| KernelEvents::EXCEPTION => array('onKernelException', -4), | |
| ); | |
| } | |
| /** | |
| * ルーティング名を取得する. | |
| * | |
| * @param $request | |
| * @return string | |
| */ | |
| private function getRoute($request) | |
| { | |
| return $request->attributes->get('_route'); | |
| } | |
| } |