From a9e0dad0dd7f23ca482d76d34afb235d90d7fd55 Mon Sep 17 00:00:00 2001 From: Yuri Kuznetsov Date: Thu, 1 Aug 2024 18:47:57 +0300 Subject: [PATCH] log: load formatter for handlers loaded with loader --- application/Espo/Core/Log/DefaultHandlerLoader.php | 5 ++++- application/Espo/Core/Log/HandlerListLoader.php | 13 ++++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/application/Espo/Core/Log/DefaultHandlerLoader.php b/application/Espo/Core/Log/DefaultHandlerLoader.php index f1451d30ad..6bf4fe8fe8 100644 --- a/application/Espo/Core/Log/DefaultHandlerLoader.php +++ b/application/Espo/Core/Log/DefaultHandlerLoader.php @@ -38,6 +38,8 @@ use ReflectionClass; use RuntimeException; /** + * @internal + * * @phpstan-type DefaultHandlerLoaderData array{ * className?: ?class-string, * params?: ?array, @@ -82,9 +84,10 @@ class DefaultHandlerLoader } /** + * @internal * @param DefaultHandlerLoaderData $data */ - private function loadFormatter(array $data): ?FormatterInterface + public function loadFormatter(array $data): ?FormatterInterface { $formatterData = $data['formatter'] ?? null; diff --git a/application/Espo/Core/Log/HandlerListLoader.php b/application/Espo/Core/Log/HandlerListLoader.php index 6371e923cf..23e91d7cbb 100644 --- a/application/Espo/Core/Log/HandlerListLoader.php +++ b/application/Espo/Core/Log/HandlerListLoader.php @@ -29,6 +29,7 @@ namespace Espo\Core\Log; +use Monolog\Handler\FormattableHandlerInterface; use Monolog\Handler\HandlerInterface; use Espo\Core\InjectableFactory; @@ -71,7 +72,17 @@ class HandlerListLoader if ($loaderClassName) { $loader = $this->injectableFactory->create($loaderClassName); - return $loader->load($params); + $handler = $loader->load($params); + + if ($handler instanceof FormattableHandlerInterface) { + $formatter = $this->defaultLoader->loadFormatter($data); + + if ($formatter) { + $handler->setFormatter($formatter); + } + } + + return $handler; } return $this->defaultLoader->load($data, $defaultLevel);