From 1da334065354208f969026fb6be15c0f4294ddb8 Mon Sep 17 00:00:00 2001 From: Asko Nõmm Date: Mon, 11 Nov 2024 17:55:31 +0200 Subject: Test Format enum methods and do not throw Loggr when driver of format is not set, instead silently fail into `$this->error`. --- src/Format.php | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) (limited to 'src/Format.php') diff --git a/src/Format.php b/src/Format.php index 5f914b7..3909a7d 100644 --- a/src/Format.php +++ b/src/Format.php @@ -20,13 +20,13 @@ enum Format * @param Message $message The message to be serialized. * @return string The serialized message. */ - public function serialize(Message $message): string + public function serialize(Message $message, ?DateTime $dateTime = new DateTime): string { return match($this) { - self::JSON => $this->serializeJson($message), - self::IntelliJ => $this->serializeIntelliJ($message), - self::Laravel => $this->serializeLaravel($message), - self::Symfony => $this->serializeSymfony($message), + self::JSON => $this->serializeJson($message, $dateTime), + self::IntelliJ => $this->serializeIntelliJ($message, $dateTime), + self::Laravel => $this->serializeLaravel($message, $dateTime), + self::Symfony => $this->serializeSymfony($message, $dateTime), }; } @@ -36,14 +36,14 @@ enum Format * @param Message $message The message to be serialized. * @return string The JSON-encoded message. */ - private function serializeJson(Message $message): string + private function serializeJson(Message $message, DateTime $dateTime): string { return json_encode([ - 'date' => (new DateTime)->format('Y-m-d H:i:s'), + 'date' => $dateTime->format('Y-m-d H:i:s'), 'level' => $message->level->value, 'context' => $message->context, 'trace' => [ - 'file' => $message->trace['file'], + 'file' => pathinfo($message->trace['file'], PATHINFO_FILENAME), 'line' => $message->trace['line'], ], ]); @@ -55,10 +55,10 @@ enum Format * @param Message $message The message to be serialized. * @return string The serialized message. */ - private function serializeLaravel(Message $message): string + private function serializeLaravel(Message $message, DateTime $dateTime): string { // Date - $date = (new DateTime)->format('Y-m-d H:i:s'); + $date = $dateTime->format('Y-m-d H:i:s'); $line = "[$date] "; // File name and level @@ -81,10 +81,10 @@ enum Format * @param Message $message The message object that contains log details. * @return string The formatted log string. */ - private function serializeSymfony(Message $message): string + private function serializeSymfony(Message $message, DateTime $dateTime): string { // Date - $date = (new DateTime)->format('Y-m-d\TH:i:s.uP'); + $date = $dateTime->format('Y-m-d\TH:i:s.uP'); $line = "[$date] "; // File name and level @@ -107,10 +107,10 @@ enum Format * @param Message $message The message object that contains log details. * @return string The formatted log string. */ - private function serializeIntelliJ(Message $message): string + private function serializeIntelliJ(Message $message, DateTime $dateTime): string { // Date - $date = (new DateTime)->format('Y-m-d H:i:s'); + $date = $dateTime->format('Y-m-d H:i:s'); $line = "{$date} "; // Line number -- cgit v1.2.3