Initial xentral_oss_20.3.c9ffacf
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Xentral\Components\Logger;
|
||||
|
||||
use Xentral\Components\Logger\Context\ContextHelper;
|
||||
use Xentral\Components\Logger\Handler\DatabaseLogHandler;
|
||||
use Xentral\Components\Logger\Handler\NullLogHandler;
|
||||
use Xentral\Core\DependencyInjection\ServiceContainer;
|
||||
use Xentral\Modules\Log\Exception\InvalidLoglevelException;
|
||||
use Xentral\Modules\Log\Service\LoggerConfigService;
|
||||
|
||||
final class Bootstrap
|
||||
{
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public static function registerServices(): array
|
||||
{
|
||||
return [
|
||||
'Logger' => 'onInitLogger',
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @param ServiceContainer $container
|
||||
*
|
||||
* @return Logger
|
||||
*/
|
||||
public static function onInitLogger(ServiceContainer $container): Logger
|
||||
{
|
||||
$request = $container->get('Request');
|
||||
$logLevel = LogLevel::ERROR;
|
||||
|
||||
if ($container->has('LoggerConfigService')) {
|
||||
/** @var LoggerConfigService $cfg */
|
||||
$cfg = $container->get('LoggerConfigService');
|
||||
try {
|
||||
$logLevel = $cfg->getLogLevel();
|
||||
} catch (InvalidLoglevelException $e) {
|
||||
}
|
||||
}
|
||||
|
||||
$contextHelper = new ContextHelper($request);
|
||||
$logger = new Logger($contextHelper);
|
||||
$handler = new DatabaseLogHandler($container->get('Database'), $logLevel);
|
||||
$logger->pushHandler($handler);
|
||||
|
||||
return $logger;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user