Skip to content

Commit f1f456b

Browse files
authored
Merge pull request #3 from mattjanssen/release/v0.1.0.1
Added logging of 5xx API responses
2 parents 7813054 + 4b132fa commit f1f456b

File tree

2 files changed

+20
-0
lines changed

2 files changed

+20
-0
lines changed

src/Resources/config/services.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ services:
1818
arguments:
1919
- "@api_response.generator.api_response"
2020
- "@api_response.compiler.api_config"
21+
- "@logger"
2122
- %kernel.debug%
2223

2324
# Factory

src/Subscriber/ApiResponseSubscriber.php

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
use MattJanssen\ApiResponseBundle\Compiler\ApiConfigCompiler;
77
use MattJanssen\ApiResponseBundle\Exception\ApiResponseExceptionInterface;
88
use MattJanssen\ApiResponseBundle\Generator\ApiResponseGenerator;
9+
use Psr\Log\LoggerInterface;
910
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
1011
use Symfony\Component\HttpFoundation\Request;
1112
use Symfony\Component\HttpFoundation\Response;
@@ -44,6 +45,13 @@ class ApiResponseSubscriber implements EventSubscriberInterface
4445
*/
4546
private $configCompiler;
4647

48+
/**
49+
* PSR Logger
50+
*
51+
* @var LoggerInterface
52+
*/
53+
private $logger;
54+
4755
/**
4856
* Kernel's Debug Status
4957
*
@@ -56,15 +64,18 @@ class ApiResponseSubscriber implements EventSubscriberInterface
5664
*
5765
* @param ApiResponseGenerator $responseGenerator
5866
* @param ApiConfigCompiler $configCompiler
67+
* @param LoggerInterface $logger
5968
* @param bool $debug
6069
*/
6170
public function __construct(
6271
ApiResponseGenerator $responseGenerator,
6372
ApiConfigCompiler $configCompiler,
73+
LoggerInterface $logger,
6474
$debug
6575
) {
6676
$this->responseGenerator = $responseGenerator;
6777
$this->configCompiler = $configCompiler;
78+
$this->logger = $logger;
6879
$this->debug = $debug;
6980
}
7081

@@ -210,6 +221,14 @@ public function onKernelException(GetResponseForExceptionEvent $event)
210221
);
211222

212223
$event->setResponse($response);
224+
225+
if ($httpCode >= Response::HTTP_INTERNAL_SERVER_ERROR) {
226+
// Log exceptions that result in a 5xx server response.
227+
$this->logger->critical(
228+
sprintf('API Exception %s: "%s" at %s line %s', get_class($exception), $exception->getMessage(), $exception->getFile(), $exception->getLine()),
229+
['exception' => $exception]
230+
);
231+
}
213232
}
214233

215234
/**

0 commit comments

Comments
 (0)