Skip to content

Commit

Permalink
Improve logging, update container
Browse files Browse the repository at this point in the history
  • Loading branch information
MrHash committed Nov 27, 2022
1 parent 73b95c7 commit 573787f
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 29 deletions.
1 change: 1 addition & 0 deletions config/services.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
6 changes: 2 additions & 4 deletions src/Service/Container.php
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
Expand Down
41 changes: 18 additions & 23 deletions src/Service/Provisioner/HttpPipelineProvisioner.php
Original file line number Diff line number Diff line change
Expand Up @@ -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();
}
Expand All @@ -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)
Expand Down
5 changes: 3 additions & 2 deletions src/Service/Provisioner/MonologProvisioner.php
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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
Expand All @@ -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;
Expand Down

0 comments on commit 573787f

Please sign in to comment.