log: load formatter for handlers loaded with loader
This commit is contained in:
@@ -38,6 +38,8 @@ use ReflectionClass;
|
||||
use RuntimeException;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*
|
||||
* @phpstan-type DefaultHandlerLoaderData array{
|
||||
* className?: ?class-string<HandlerInterface>,
|
||||
* params?: ?array<string, mixed>,
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user