From 573787f14b14c4193ab8f06faadb59c979bdbc7b Mon Sep 17 00:00:00 2001 From: MrHash Date: Sun, 27 Nov 2022 22:40:59 +0000 Subject: [PATCH] Improve logging, update container --- config/services.yml | 1 + src/Service/Container.php | 6 +-- .../Provisioner/HttpPipelineProvisioner.php | 41 ++++++++----------- .../Provisioner/MonologProvisioner.php | 5 ++- 4 files changed, 24 insertions(+), 29 deletions(-) diff --git a/config/services.yml b/config/services.yml index 360a0ce..bc714b1 100644 --- a/config/services.yml +++ b/config/services.yml @@ -3,6 +3,7 @@ daikon: class: Monolog\Logger provisioner: Daikon\Boot\Service\Provisioner\MonologProvisioner settings: + level: Info location: ${app.log_dir}/daikon.log crate_map: diff --git a/src/Service/Container.php b/src/Service/Container.php index cfece2d..e06234d 100644 --- a/src/Service/Container.php +++ b/src/Service/Container.php @@ -21,19 +21,17 @@ public function __construct(Injector $injector) } /** - * @param string $fqcn * @return object */ - public function get($fqcn) + public function get(string $fqcn) { return $this->injector->make($fqcn); } /** - * @param string $fqcn * @return boolean */ - public function has($fqcn) + public function has(string $fqcn): bool { return class_exists($fqcn); } diff --git a/src/Service/Provisioner/HttpPipelineProvisioner.php b/src/Service/Provisioner/HttpPipelineProvisioner.php index bbf253c..c59d71b 100644 --- a/src/Service/Provisioner/HttpPipelineProvisioner.php +++ b/src/Service/Provisioner/HttpPipelineProvisioner.php @@ -56,27 +56,21 @@ public function provision( ->share(AnalyzerInterface::class) ->alias(AnalyzerInterface::class, Analyzer::class) ->delegate(Analyzer::class, function () use ($injector, $configProvider): AnalyzerInterface { - $corsSettings = (new Settings) - // skipping ->init() because it doesn't look good - ->disableCheckHost() - ->disableAddAllowedMethodsToPreFlightResponse() - ->disableAddAllowedHeadersToPreFlightResponse() - ->setCredentialsNotSupported() - ->setServerOrigin( - $configProvider->get('project.cors.scheme'), - $configProvider->get('project.cors.host'), - $configProvider->get('project.cors.port') - )->setAllowedOrigins( - $configProvider->get('project.cors.request.allowed_origins', []) - )->setAllowedHeaders( - $configProvider->get('project.cors.request.allowed_headers', []) - )->setAllowedMethods( - $configProvider->get('project.cors.request.allowed_methods', []) - )->setPreFlightCacheMaxAge( - $configProvider->get('project.cors.response.preflight_cache_max_age', 0) - )->setExposedHeaders( - $configProvider->get('project.cors.response.exposed_headers', []) - ); + $corsSettings = (new Settings)->init( + $configProvider->get('project.cors.scheme'), + $configProvider->get('project.cors.host'), + $configProvider->get('project.cors.port') + )->setAllowedOrigins( + $configProvider->get('project.cors.request.allowed_origins', []) + )->setAllowedHeaders( + $configProvider->get('project.cors.request.allowed_headers', []) + )->setAllowedMethods( + $configProvider->get('project.cors.request.allowed_methods', []) + )->setPreFlightCacheMaxAge( + $configProvider->get('project.cors.response.preflight_cache_max_age', 0) + )->setExposedHeaders( + $configProvider->get('project.cors.response.exposed_headers', []) + ); if ($configProvider->get('project.cors.request.enable_check_host') === true) { $corsSettings = $corsSettings->enableCheckHost(); } @@ -86,8 +80,9 @@ public function provision( if ($configProvider->get('project.cors.request.allowed_credentials') === true) { $corsSettings = $corsSettings->setCredentialsSupported(); } - $corsSettings->setLogger($injector->make(LoggerInterface::class)); - return Analyzer::instance($corsSettings); + $analyzer = Analyzer::instance($corsSettings); + $analyzer->setLogger($injector->make(LoggerInterface::class)); + return $analyzer; }) // Routing and request ->share(JsonPayload::class) diff --git a/src/Service/Provisioner/MonologProvisioner.php b/src/Service/Provisioner/MonologProvisioner.php index 9c18f81..6f025d0 100644 --- a/src/Service/Provisioner/MonologProvisioner.php +++ b/src/Service/Provisioner/MonologProvisioner.php @@ -12,6 +12,7 @@ use Daikon\Boot\Service\ServiceDefinitionInterface; use Daikon\Config\ConfigProviderInterface; use Daikon\Interop\RuntimeException; +use Monolog\Level; use Monolog\Logger; use Monolog\Handler\ErrorLogHandler; use Monolog\Handler\StreamHandler; @@ -29,7 +30,7 @@ public function provision( if (!isset($settings['location'])) { throw new RuntimeException('Please provide a logging service output location.'); } - $settings['level'] = $settings['level'] ?? Logger::DEBUG; + $settings['level'] = $settings['level'] ? constant(Level::class.'::'.$settings['level']) : Level::Info; $settings['name'] = $settings['name'] ?? 'default-logger'; $injector @@ -41,7 +42,7 @@ function () use ($className, $settings): Logger { /** @var Logger $logger */ $logger = new $className($settings['name']); $logger->setHandlers([ - new ErrorLogHandler(ErrorLogHandler::SAPI, $settings['level']), + new ErrorLogHandler(ErrorLogHandler::OPERATING_SYSTEM, $settings['level']), new StreamHandler($settings['location'], $settings['level']) ]); return $logger;