--- /dev/null
+<?php
+
+// Copyright (C) 2010-2024, the Friendica project
+// SPDX-FileCopyrightText: 2010-2024 the Friendica project
+//
+// SPDX-License-Identifier: AGPL-3.0-or-later
+
+declare(strict_types=1);
+
+namespace Friendica\Core\Logger\Factory;
+
+use Psr\Log\LoggerInterface;
+use Psr\Log\LogLevel;
+use Psr\Log\NullLogger;
+
+/**
+ * Manager for the core logging instances
+ */
+final class LegacyLoggerFactory implements LoggerFactory
+{
+ /**
+ * Creates and returns a PSR-3 Logger instance.
+ *
+ * Calling this method multiple times with the same parameters SHOULD return the same object.
+ *
+ * @param \Psr\Log\LogLevel::* $logLevel The log level
+ * @param \Friendica\Core\Logger\Capability\LogChannel::* $logChannel The log channel
+ */
+ public function createLogger(string $logLevel, string $logChannel): LoggerInterface
+ {
+ return new NullLogger();
+ }
+}
--- /dev/null
+<?php
+
+// Copyright (C) 2010-2024, the Friendica project
+// SPDX-FileCopyrightText: 2010-2024 the Friendica project
+//
+// SPDX-License-Identifier: AGPL-3.0-or-later
+
+declare(strict_types=1);
+
+namespace Friendica\Core\Logger\Factory;
+
+use Psr\Log\LoggerInterface;
+
+/**
+ * Interface for a logger factory
+ */
+interface LoggerFactory
+{
+ /**
+ * Creates and returns a PSR-3 Logger instance.
+ *
+ * Calling this method multiple times with the same parameters SHOULD return the same object.
+ *
+ * @param \Psr\Log\LogLevel::* $logLevel The log level
+ * @param \Friendica\Core\Logger\Capability\LogChannel::* $logChannel The log channel
+ */
+ public function createLogger(string $logLevel, string $logChannel): LoggerInterface;
+}
--- /dev/null
+<?php
+
+// Copyright (C) 2010-2024, the Friendica project
+// SPDX-FileCopyrightText: 2010-2024 the Friendica project
+//
+// SPDX-License-Identifier: AGPL-3.0-or-later
+
+declare(strict_types=1);
+
+namespace Friendica\Test\Unit\Core\Logger\Factory;
+
+use Friendica\Core\Logger\Capability\LogChannel;
+use Friendica\Core\Logger\Factory\LegacyLoggerFactory;
+use PHPUnit\Framework\TestCase;
+use Psr\Log\LoggerInterface;
+use Psr\Log\LogLevel;
+
+class LegacyLoggerFactoryTest extends TestCase
+{
+ public function testCreateLoggerReturnsPsrLogger(): void
+ {
+ $factory = new LegacyLoggerFactory();
+
+ $this->assertInstanceOf(
+ LoggerInterface::class,
+ $factory->createLogger(LogLevel::DEBUG, LogChannel::DEFAULT)
+ );
+ }
+}