From 8938691d8dfe26ab9a159075143bf95ce034a7e9 Mon Sep 17 00:00:00 2001 From: Oleksandr Diudiun Date: Mon, 4 Jul 2022 11:08:49 +0200 Subject: [PATCH] UPdate log --- src/Log.php | 75 ++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 51 insertions(+), 24 deletions(-) diff --git a/src/Log.php b/src/Log.php index 22f009b..90c67b3 100644 --- a/src/Log.php +++ b/src/Log.php @@ -1,10 +1,15 @@ $project, 'service' => $service, 'environment' => $environment, 'DEBUG_MODE' => $DEBUG_MODE, - 'hostname' => $hostname, - 'ip' => $ip, - 'os' => $os + 'hostname' => gethostname(), + 'ip' => gethostbyname(gethostname()), + 'os' => php_uname('s') . " " . php_uname('r') ]; } + + private function registerHandler($type, $value): void + { + switch ($type) { + case 'StreamHandler': + $Handler = new StreamHandler($value, Log::DEBUG); + $Handler->setFormatter(new LineFormatter(null, null, true, true)); + break; + case 'RotatingFileHandler': + $Handler = new RotatingFileHandler($value, 5, Log::DEBUG); + $Handler->setFormatter(new LineFormatter(null, null, true, true)); + break; + case 'SqsHandler': + $value->registerQueue('logs', ['ReceiveMessageWaitTimeSeconds' => 20]); + $Handler = new SqsHandler($value->client(), $value->getQueueUrl('logs')); + $Handler->setFormatter(new JsonFormatter()); + $Handler->pushProcessor('\Memcrab\Log\Log::contextProcessor'); + break; + default: + throw new \Exception($type . ' Handler scenario undefined. Please provide your own logic.', 500); + break; + } + $this->pushHandler($Handler); + } + + public function setLogHandlersBasedOnDebugMode(bool $DEBUG_MODE, array $debugHandlers, array $releaseHandler): void + { + foreach (($DEBUG_MODE) ? $debugHandlers : $releaseHandler as $key => $value) { + $this->registerHandler($key, $value); + } + } }