]> git.mxchange.org Git - friendica.git/blobdiff - src/Core/Logger/Factory/Logger.php
Use the owner, not the author
[friendica.git] / src / Core / Logger / Factory / Logger.php
index 3fde878a34d086202995adc5984506e2714635c8..f1086f5853c4cea47f23b244106ffb0e2a604337 100644 (file)
 namespace Friendica\Core\Logger\Factory;
 
 use Friendica\Core\Config\Capability\IManageConfigValues;
-use Friendica\Core\Hooks\Capabilities\ICanCreateInstances;
-use Friendica\Core\Logger\Capabilities\LogChannel;
+use Friendica\Core\Hooks\Capability\ICanCreateInstances;
+use Friendica\Core\Logger\Capability\LogChannel;
+use Friendica\Core\Logger\Type\ProfilerLogger as ProfilerLoggerClass;
+use Friendica\Util\Profiler;
 use Psr\Log\LoggerInterface;
 use Psr\Log\NullLogger;
 use Throwable;
@@ -41,7 +43,7 @@ class Logger
                $this->channel = $channel;
        }
 
-       public function create(ICanCreateInstances $createInstances, IManageConfigValues $config): LoggerInterface
+       public function create(ICanCreateInstances $instanceCreator, IManageConfigValues $config, Profiler $profiler): LoggerInterface
        {
                if (empty($config->get('system', 'debugging') ?? false)) {
                        return new NullLogger();
@@ -50,7 +52,13 @@ class Logger
                $name = $config->get('system', 'logger_config') ?? '';
 
                try {
-                       return $createInstances->createWithName(LoggerInterface::class, $name, [$this->channel]);
+                       /** @var LoggerInterface $logger */
+                       $logger = $instanceCreator->create(LoggerInterface::class, $name, [$this->channel]);
+                       if ($config->get('system', 'profiling') ?? false) {
+                               return new ProfilerLoggerClass($logger, $profiler);
+                       } else {
+                               return $logger;
+                       }
                } catch (Throwable $e) {
                        // No logger ...
                        return new NullLogger();