diff --git a/composer.json b/composer.json
index 4cedf76c69b6aa75e80c382e8d61faaf653415c6..b44f929b0606fdcfc752c856af6c0e819a9328b8 100644
--- a/composer.json
+++ b/composer.json
@@ -70,7 +70,7 @@
 		"psr/http-message": "^1.0",
 		"psr/http-server-handler": "^1.0",
 		"psr/http-server-middleware": "^1.0",
-		"psr/log": "^1.0",
+		"psr/log": "^2.0 || ^3.0",
 		"symfony/config": "^5.4",
 		"symfony/console": "^5.4",
 		"symfony/dependency-injection": "^5.4",
diff --git a/composer.lock b/composer.lock
index 8031c334e55e9dcd8a3709e1dc153c153ad6e1c7..eca2c7b309a1eace0452793ac92eaef8c02be71d 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
         "This file is @generated automatically"
     ],
-    "content-hash": "13a541e750caeed2cb8f04fadd78875a",
+    "content-hash": "532408f6bb1d88c78244591a1c7f5aa7",
     "packages": [
         {
             "name": "bacon/bacon-qr-code",
@@ -1817,30 +1817,30 @@
         },
         {
             "name": "psr/log",
-            "version": "1.1.4",
+            "version": "2.0.0",
             "source": {
                 "type": "git",
                 "url": "https://github.com/php-fig/log.git",
-                "reference": "d49695b909c3b7628b6289db5479a1c204601f11"
+                "reference": "ef29f6d262798707a9edd554e2b82517ef3a9376"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11",
-                "reference": "d49695b909c3b7628b6289db5479a1c204601f11",
+                "url": "https://api.github.com/repos/php-fig/log/zipball/ef29f6d262798707a9edd554e2b82517ef3a9376",
+                "reference": "ef29f6d262798707a9edd554e2b82517ef3a9376",
                 "shasum": ""
             },
             "require": {
-                "php": ">=5.3.0"
+                "php": ">=8.0.0"
             },
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "1.1.x-dev"
+                    "dev-master": "2.0.x-dev"
                 }
             },
             "autoload": {
                 "psr-4": {
-                    "Psr\\Log\\": "Psr/Log/"
+                    "Psr\\Log\\": "src"
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
@@ -1861,9 +1861,9 @@
                 "psr-3"
             ],
             "support": {
-                "source": "https://github.com/php-fig/log/tree/1.1.4"
+                "source": "https://github.com/php-fig/log/tree/2.0.0"
             },
-            "time": "2021-05-03T11:20:27+00:00"
+            "time": "2021-07-14T16:41:46+00:00"
         },
         {
             "name": "ralouphie/getallheaders",
diff --git a/typo3/sysext/backend/Tests/Functional/Authentication/PasswordResetTest.php b/typo3/sysext/backend/Tests/Functional/Authentication/PasswordResetTest.php
index 4d9241827fa15a4e577501d58ffc1aad3f7531ce..a64a7b7af137a77d7e4ef3d951d476a850a2aebe 100644
--- a/typo3/sysext/backend/Tests/Functional/Authentication/PasswordResetTest.php
+++ b/typo3/sysext/backend/Tests/Functional/Authentication/PasswordResetTest.php
@@ -40,7 +40,7 @@ class PasswordResetTest extends FunctionalTestCase
         $this->logger = new class() implements LoggerInterface {
             use LoggerTrait;
             public array $records = [];
-            public function log($level, $message, array $context = []): void
+            public function log($level, string|\Stringable $message, array $context = []): void
             {
                 $this->records[] = [
                     'level' => $level,
diff --git a/typo3/sysext/core/Classes/Log/Logger.php b/typo3/sysext/core/Classes/Log/Logger.php
index c68e089454282be00d930d2288fcecc2b41af698..7c58338f33b2f7f54c227f2d95fd583f380e4538 100644
--- a/typo3/sysext/core/Classes/Log/Logger.php
+++ b/typo3/sysext/core/Classes/Log/Logger.php
@@ -15,7 +15,8 @@
 
 namespace TYPO3\CMS\Core\Log;
 
-use Psr\Log\AbstractLogger;
+use Psr\Log\LoggerInterface;
+use Psr\Log\LoggerTrait;
 use TYPO3\CMS\Core\Log\Processor\ProcessorInterface;
 use TYPO3\CMS\Core\Log\Writer\WriterInterface;
 use TYPO3\CMS\Core\Utility\GeneralUtility;
@@ -23,8 +24,10 @@ use TYPO3\CMS\Core\Utility\GeneralUtility;
 /**
  * Logger to log events and data for different components.
  */
-class Logger extends AbstractLogger
+class Logger implements LoggerInterface
 {
+    use LoggerTrait;
+
     /**
      * Logger name or component for which this logger is meant to be used for.
      *
diff --git a/typo3/sysext/core/Tests/Unit/Error/DebugExceptionHandlerTest.php b/typo3/sysext/core/Tests/Unit/Error/DebugExceptionHandlerTest.php
index 79ce2356d3fe27310423697e9ea6eea0d156c737..42b059ad5610e49864982bf04fe4fea8e8078456 100644
--- a/typo3/sysext/core/Tests/Unit/Error/DebugExceptionHandlerTest.php
+++ b/typo3/sysext/core/Tests/Unit/Error/DebugExceptionHandlerTest.php
@@ -108,7 +108,7 @@ class DebugExceptionHandlerTest extends UnitTestCase
         $logger = new class() implements LoggerInterface {
             use LoggerTrait;
             public array $records = [];
-            public function log($level, $message, array $context = []): void
+            public function log($level, string|\Stringable $message, array $context = []): void
             {
                 $this->records[] = [
                     'level' => $level,
diff --git a/typo3/sysext/core/Tests/Unit/Error/ErrorHandlerTest.php b/typo3/sysext/core/Tests/Unit/Error/ErrorHandlerTest.php
index e19baa5f47070224ef85dfc735601b2d97933f08..9b9bc096f684dc565ea9e727b085840029ce4875 100644
--- a/typo3/sysext/core/Tests/Unit/Error/ErrorHandlerTest.php
+++ b/typo3/sysext/core/Tests/Unit/Error/ErrorHandlerTest.php
@@ -53,7 +53,7 @@ class ErrorHandlerTest extends UnitTestCase
         $this->trackingLogger = new class() implements LoggerInterface {
             use LoggerTrait;
             public array $records = [];
-            public function log($level, $message, array $context = []): void
+            public function log($level, string|\Stringable $message, array $context = []): void
             {
                 $this->records[] = [
                     'level' => $level,
diff --git a/typo3/sysext/core/Tests/Unit/Error/ProductionExceptionHandlerTest.php b/typo3/sysext/core/Tests/Unit/Error/ProductionExceptionHandlerTest.php
index c9c08f4d2d1d9f016d7ce4443a8128ee2a3b161e..b9b2b89c436cc135500c5b329a6d36e2083da863 100644
--- a/typo3/sysext/core/Tests/Unit/Error/ProductionExceptionHandlerTest.php
+++ b/typo3/sysext/core/Tests/Unit/Error/ProductionExceptionHandlerTest.php
@@ -143,7 +143,7 @@ class ProductionExceptionHandlerTest extends UnitTestCase
         $logger = new class() implements LoggerInterface {
             use LoggerTrait;
             public array $records = [];
-            public function log($level, $message, array $context = []): void
+            public function log($level, string|\Stringable $message, array $context = []): void
             {
                 $this->records[] = [
                     'level' => $level,
diff --git a/typo3/sysext/core/composer.json b/typo3/sysext/core/composer.json
index 4319d4f65cb88d1b6b8d830d86cb0e5aa2a5e7e7..2330d636ffaf41e2d24d4d999230fec0595d2ecf 100644
--- a/typo3/sysext/core/composer.json
+++ b/typo3/sysext/core/composer.json
@@ -50,7 +50,7 @@
 		"psr/http-message": "^1.0",
 		"psr/http-server-handler": "^1.0",
 		"psr/http-server-middleware": "^1.0",
-		"psr/log": "^1.0",
+		"psr/log": "^2.0 || ^3.0",
 		"symfony/config": "^5.4",
 		"symfony/console": "^5.4",
 		"symfony/dependency-injection": "^5.4",
diff --git a/typo3/sysext/redirects/composer.json b/typo3/sysext/redirects/composer.json
index ddf2784d0cb4a7606af022924a15a443da2b2233..12970df45dd08239a7bcb8aa555f82b1ef7c4997 100644
--- a/typo3/sysext/redirects/composer.json
+++ b/typo3/sysext/redirects/composer.json
@@ -21,7 +21,7 @@
 	"require": {
 		"doctrine/dbal": "^3.3.2",
 		"psr/http-message": "^1.0",
-		"psr/log": "^1.0",
+		"psr/log": "^2.0 || ^3.0",
 		"symfony/console": "^5.4",
 		"typo3/cms-backend": "12.0.*@dev",
 		"typo3/cms-core": "12.0.*@dev",