diff options
Diffstat (limited to 'core/Tracker/Handler.php')
-rw-r--r-- | core/Tracker/Handler.php | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/core/Tracker/Handler.php b/core/Tracker/Handler.php index cb4707a01b..f4c9fa9339 100644 --- a/core/Tracker/Handler.php +++ b/core/Tracker/Handler.php @@ -10,11 +10,13 @@ namespace Piwik\Tracker; use Piwik\Common; +use Piwik\Container\StaticContainer; use Piwik\Exception\InvalidRequestParameterException; use Piwik\Exception\UnexpectedWebsiteFoundException; use Piwik\Tracker; use Exception; use Piwik\Url; +use Psr\Log\LoggerInterface; class Handler { @@ -28,9 +30,15 @@ class Handler */ private $tasksRunner; + /** + * @var LoggerInterface + */ + private $logger; + public function __construct() { $this->setResponse(new Response()); + $this->logger = StaticContainer::get(LoggerInterface::class); } public function setResponse($response) @@ -81,8 +89,6 @@ class Handler public function onException(Tracker $tracker, RequestSet $requestSet, Exception $e) { - Common::printDebug("Exception: " . $e->getMessage()); - $statusCode = 500; if ($e instanceof UnexpectedWebsiteFoundException) { $statusCode = 400; @@ -90,6 +96,17 @@ class Handler $statusCode = 400; } + // if an internal server error, log as a real error, otherwise it's just malformed input + if ($statusCode == 500) { + $this->logger->error('Exception: {exception}', [ + 'exception' => $e, + ]); + } else { + $this->logger->debug('Exception: {exception}', [ + 'exception' => $e, + ]); + } + $this->response->outputException($tracker, $e, $statusCode); $this->redirectIfNeeded($requestSet); } |