From 0b0d805040b011ac4734d2fd42ca51621d8d20b6 Mon Sep 17 00:00:00 2001 From: Enrico Dias <32619307+enricodias@users.noreply.github.com> Date: Sun, 9 Feb 2020 13:12:55 -0300 Subject: [PATCH] FileLogger: refactoring (#351) --- src/Dibi/Loggers/FileLogger.php | 37 ++++++++++++++++----------------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/src/Dibi/Loggers/FileLogger.php b/src/Dibi/Loggers/FileLogger.php index 6fa6c11..8f4e28d 100644 --- a/src/Dibi/Loggers/FileLogger.php +++ b/src/Dibi/Loggers/FileLogger.php @@ -49,35 +49,34 @@ class FileLogger return; } - $handle = fopen($this->file, 'a'); - if (!$handle) { - return; // or throw exception? - } - flock($handle, LOCK_EX); - if ($event->result instanceof \Exception) { $message = $event->result->getMessage(); if ($code = $event->result->getCode()) { $message = "[$code] $message"; } - fwrite($handle, + $this->writeToFile( + $event, "ERROR: $message" - . "\n-- SQL: " . $event->sql - . "\n-- driver: " . $event->connection->getConfig('driver') . '/' . $event->connection->getConfig('name') - . ";\n-- " . date('Y-m-d H:i:s') - . "\n\n" + . "\n-- SQL: " . $event->sql ); } else { - fwrite($handle, + $this->writeToFile( + $event, 'OK: ' . $event->sql - . ($event->count ? ";\n-- rows: " . $event->count : '') - . "\n-- takes: " . sprintf('%0.3f ms', $event->time * 1000) - . "\n-- source: " . implode(':', $event->source) - . "\n-- driver: " . $event->connection->getConfig('driver') . '/' . $event->connection->getConfig('name') - . "\n-- " . date('Y-m-d H:i:s') - . "\n\n" + . ($event->count ? ";\n-- rows: " . $event->count : '') + . "\n-- takes: " . sprintf('%0.3f ms', $event->time * 1000) + . "\n-- source: " . implode(':', $event->source) ); } - fclose($handle); + } + + + private function writeToFile(Dibi\Event $event, string $message): void + { + $message .= + "\n-- driver: " . $event->connection->getConfig('driver') . '/' . $event->connection->getConfig('name') + . "\n-- " . date('Y-m-d H:i:s') + . "\n\n"; + file_put_contents($this->file, $message, FILE_APPEND | LOCK_EX); } }