diff --git a/module/VuFind/src/VuFind/Log/Logger.php b/module/VuFind/src/VuFind/Log/Logger.php index 04b7faa199a57277751bdda2d9f8dc83139e772e..289e9381d4fe15502d2168267c0e95e32af79e02 100644 --- a/module/VuFind/src/VuFind/Log/Logger.php +++ b/module/VuFind/src/VuFind/Log/Logger.php @@ -290,6 +290,24 @@ class Logger extends BaseLogger implements ServiceLocatorAwareInterface return parent::log($priority, $message, $extra); } + /** + * Given an exception, return a severity level for logging purposes. + * + * @param \Exception $error Exception to analyze + * + * @return int + */ + protected function getSeverityFromException($error) + { + // Treat unexpected or 5xx errors as more severe than 4xx errors. + if ($error instanceof \VuFind\Exception\HttpStatusInterface + && in_array($error->getHttpStatus(), [403, 404]) + ) { + return BaseLogger::WARN; + } + return BaseLogger::CRIT; + } + /** * Log an exception triggered by ZF2 for administrative purposes. * @@ -350,7 +368,7 @@ class Logger extends BaseLogger implements ServiceLocatorAwareInterface 5 => $baseError . $detailedServer . $detailedBacktrace ]; - $this->log(BaseLogger::CRIT, $errorDetails); + $this->log($this->getSeverityFromException($error), $errorDetails); } /**