diff --git a/src/Core/Logger/Factory/LoggerFactory.php b/src/Core/Logger/Factory/LoggerFactory.php index c789028a08..f3c725deff 100644 --- a/src/Core/Logger/Factory/LoggerFactory.php +++ b/src/Core/Logger/Factory/LoggerFactory.php @@ -9,6 +9,7 @@ declare(strict_types=1); namespace Friendica\Core\Logger\Factory; +use Friendica\Core\Config\Capability\IManageConfigValues; use Psr\Log\LoggerInterface; use Psr\Log\NullLogger; @@ -17,14 +18,31 @@ use Psr\Log\NullLogger; */ final class LoggerFactory { + private bool $debug; + private LoggerInterface $logger; + public function __construct(IManageConfigValues $config) + { + $this->debug = (bool) $config->get('system', 'debugging') ?? false; + } + public function create(): LoggerInterface { if (! isset($this->logger)) { - $this->logger = new NullLogger(); + $this->logger = $this->createLogger(); } return $this->logger; } + + private function createLogger(): LoggerInterface + { + // Always return NullLogger if debug is disabled + if ($this->debug === false) { + return new NullLogger(); + } + + return new NullLogger(); + } } diff --git a/tests/Unit/Core/Logger/Factory/LoggerFactoryTest.php b/tests/Unit/Core/Logger/Factory/LoggerFactoryTest.php index 1c42ec39dd..aa80dffe83 100644 --- a/tests/Unit/Core/Logger/Factory/LoggerFactoryTest.php +++ b/tests/Unit/Core/Logger/Factory/LoggerFactoryTest.php @@ -9,23 +9,35 @@ declare(strict_types=1); namespace Friendica\Test\Unit\Core\Logger\Factory; +use Friendica\Core\Config\Capability\IManageConfigValues; use Friendica\Core\Logger\Factory\LoggerFactory; use PHPUnit\Framework\TestCase; use Psr\Log\LoggerInterface; +use Psr\Log\NullLogger; class LoggerFactoryTest extends TestCase { - public function testLoggerFactoryCreateReturnsPsrLogger(): void + public function testCreateReturnsPsrLogger(): void { - $factory = new LoggerFactory(); + $factory = new LoggerFactory($this->createStub(IManageConfigValues::class)); $this->assertInstanceOf(LoggerInterface::class, $factory->create()); } - public function testLoggerFactoryCreateReturnsSameObject(): void + public function testCreateReturnsSameObject(): void { - $factory = new LoggerFactory(); + $factory = new LoggerFactory($this->createStub(IManageConfigValues::class)); $this->assertSame($factory->create(), $factory->create()); } + + public function testCreateWithDebugDisabledReturnsNullLogger(): void + { + $config = $this->createStub(IManageConfigValues::class); + $config->method('get')->willReturn(false); + + $factory = new LoggerFactory($config); + + $this->assertInstanceOf(NullLogger::class, $factory->create()); + } }