From: Art4 Date: Wed, 5 Feb 2025 15:11:14 +0000 (+0000) Subject: Rewrite Monolog factory to implement LoggerFactory X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=e6d92cc94a56660207e08095865195da97d403a5;p=friendica-addons.git Rewrite Monolog factory to implement LoggerFactory --- diff --git a/monolog/src/Factory/Monolog.php b/monolog/src/Factory/Monolog.php deleted file mode 100644 index c5c69824..00000000 --- a/monolog/src/Factory/Monolog.php +++ /dev/null @@ -1,54 +0,0 @@ -channel); - $logger->setTimezone($loggerTimeZone); - $logger->pushProcessor(new PsrLogMessageProcessor()); - $logger->pushProcessor(new ProcessIdProcessor()); - $logger->pushProcessor(new UidProcessor()); - $logger->pushProcessor(new IntrospectionProcessor($this->introspection, LogLevel::DEBUG)); - - $logfile = $config->get('system', 'logfile'); - - // just add a stream in case it's either writable or not file - if (is_writable($logfile)) { - $loglevel = $loglevel ?? static::mapLegacyConfigDebugLevel($config->get('system', 'loglevel')); - $loglevel = Logger::toMonologLevel($loglevel); - - // fallback to notice if an invalid loglevel is set - if (!is_int($loglevel)) { - $loglevel = LogLevel::NOTICE; - } - - $fileHandler = new StreamHandler($logfile, $loglevel); - - $formatter = new LineFormatter("%datetime% %channel% [%level_name%]: %message% %context% %extra%\n"); - $fileHandler->setFormatter($formatter); - - $logger->pushHandler($fileHandler); - } - - return $logger; - } -} diff --git a/monolog/src/Factory/MonologFactory.php b/monolog/src/Factory/MonologFactory.php new file mode 100644 index 00000000..ede4d5b2 --- /dev/null +++ b/monolog/src/Factory/MonologFactory.php @@ -0,0 +1,75 @@ +introspection = $introspection; + $this->config = $config; + } + + /** + * 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 + { + $loggerTimeZone = new \DateTimeZone('UTC'); + + $logger = new Logger($logChannel); + $logger->setTimezone($loggerTimeZone); + $logger->pushProcessor(new PsrLogMessageProcessor()); + $logger->pushProcessor(new ProcessIdProcessor()); + $logger->pushProcessor(new UidProcessor()); + $logger->pushProcessor(new IntrospectionProcessor($this->introspection, LogLevel::DEBUG)); + + $logfile = $this->config->get('system', 'logfile'); + + // just add a stream in case it's either writable or not file + if (is_writable($logfile)) { + $logLevel = Logger::toMonologLevel($logLevel); + + // fallback to notice if an invalid loglevel is set + if (!is_int($logLevel)) { + $logLevel = LogLevel::NOTICE; + } + + $fileHandler = new StreamHandler($logfile, $logLevel); + + $formatter = new LineFormatter("%datetime% %channel% [%level_name%]: %message% %context% %extra%\n"); + $fileHandler->setFormatter($formatter); + + $logger->pushHandler($fileHandler); + } + + return $logger; + } +} diff --git a/monolog/static/dependencies.config.php b/monolog/static/dependencies.config.php index e3066594..75ea8df7 100644 --- a/monolog/static/dependencies.config.php +++ b/monolog/static/dependencies.config.php @@ -20,10 +20,7 @@ */ return [ - \Monolog\Logger::class => [ - 'instanceOf' => \Friendica\Addon\monolog\src\Factory\Monolog::class, - 'call' => [ - ['create', [], \Dice\Dice::CHAIN_CALL], - ], + \Friendica\Core\Logger\Factory\LoggerFactory::class => [ + 'instanceOf' => \Friendica\Addon\monolog\src\Factory\MonologFactory::class, ], ]; diff --git a/monolog/static/strategies.config.php b/monolog/static/strategies.config.php deleted file mode 100644 index 87153839..00000000 --- a/monolog/static/strategies.config.php +++ /dev/null @@ -1,26 +0,0 @@ -. - * - */ - -return [ - \Psr\Log\LoggerInterface::class => [ - \Monolog\Logger::class => ['monolog'], - ], -];