From ce7cf5f92e48af94bc203dd9a507e323f133f4bd Mon Sep 17 00:00:00 2001
From: Ronny Perinke <noreply@example.com>
Date: Mon, 8 May 2023 11:24:49 +0000
Subject: [PATCH] [TASK] Write correct error level into `sys_log` table

* PHP exceptions were logged with level "info"
  in the `sys_log` table
* PHP errors were logged with wrong (numeric)
  error level in the `sys_log` table

Only values from `\Psr\Log\LogLevel` are allowed
and usable. Numeric values can not be used or
filtered in BeLog backend module.

Releases: main, 12.4, 11.5
Resolves: #100830
Change-Id: Ie35fe291ac74edd4173e096b8d12609d32c45e02
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/79116
Tested-by: core-ci <typo3@b13.com>
Tested-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
Reviewed-by: Anja Leichsenring <aleichsenring@ab-softlab.de>
---
 .../Classes/Error/AbstractExceptionHandler.php    |  1 +
 typo3/sysext/core/Classes/Error/ErrorHandler.php  | 15 +--------------
 2 files changed, 2 insertions(+), 14 deletions(-)

diff --git a/typo3/sysext/core/Classes/Error/AbstractExceptionHandler.php b/typo3/sysext/core/Classes/Error/AbstractExceptionHandler.php
index 85b920410095..2dd0aee73903 100644
--- a/typo3/sysext/core/Classes/Error/AbstractExceptionHandler.php
+++ b/typo3/sysext/core/Classes/Error/AbstractExceptionHandler.php
@@ -167,6 +167,7 @@ abstract class AbstractExceptionHandler implements ExceptionHandlerInterface, Si
                 'channel' => SystemLogType::toChannel(SystemLogType::ERROR),
                 'action' => SystemLogGenericAction::UNDEFINED,
                 'error' => SystemLogErrorClassification::SYSTEM_ERROR,
+                'level' => SystemLogType::toLevel(SystemLogType::ERROR),
                 'details_nr' => 0,
                 'details' => str_replace('%', '%%', $logMessage),
                 'log_data' => empty($data) ? '' : serialize($data),
diff --git a/typo3/sysext/core/Classes/Error/ErrorHandler.php b/typo3/sysext/core/Classes/Error/ErrorHandler.php
index 25030f0e0c77..a054795b25d2 100644
--- a/typo3/sysext/core/Classes/Error/ErrorHandler.php
+++ b/typo3/sysext/core/Classes/Error/ErrorHandler.php
@@ -248,19 +248,6 @@ class ErrorHandler implements ErrorHandlerInterface, LoggerAwareInterface
                 }
             }
 
-            switch ($logLevel) {
-                case LogLevel::ERROR:
-                    $severity = 2;
-                    break;
-                case LogLevel::WARNING:
-                    $severity = 1;
-                    break;
-                case LogLevel::NOTICE:
-                default:
-                    $severity = 0;
-                    break;
-            }
-
             $connection->insert(
                 'sys_log',
                 [
@@ -269,7 +256,7 @@ class ErrorHandler implements ErrorHandlerInterface, LoggerAwareInterface
                     'channel' => SystemLogType::toChannel(SystemLogType::ERROR),
                     'action' => SystemLogGenericAction::UNDEFINED,
                     'error' => SystemLogErrorClassification::SYSTEM_ERROR,
-                    'level' => $severity,
+                    'level' => $logLevel,
                     'details_nr' => 0,
                     'details' => str_replace('%', '%%', $logMessage),
                     'log_data' => empty($data) ? '' : serialize($data),
-- 
GitLab