diff --git a/README.md b/README.md index edb7923..523e878 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@
:pencil: A dev tool to log all queries for Laravel application.
+:pencil: A dev tool to log all queries for Laravel application.
## Installing @@ -13,14 +13,14 @@ $ composer require overtrue/laravel-query-logger --dev -vvv ## Usage ```shell -$ tail -f ./storage/logs/laravel.log +$ tail -f ./storage/logs/laravel.log ``` [2017-09-05 14:52:13] local.INFO: ============ URL: http://laravel.app/discussions =============== - [2017-09-05 14:52:14] local.INFO: [5.0083ms] select count(*) as aggregate from `discussions` where `discussions`.`deleted_at` is null - [2017-09-05 14:52:14] local.INFO: [7.0212ms] select * from `discussions` where `discussions`.`deleted_at` is null order by `is_top` desc, `created_at` desc limit 15 offset 0 - [2017-09-05 14:52:14] local.INFO: [12.4282ms] select `tags`.*, `taggables`.`taggable_id` as `pivot_taggable_id`, `taggables`.`tag_id` as `pivot_tag_id` from `tags` inner join `taggables` on `tags`.`id` = `taggables`.`tag_id` where `taggables`.`taggable_id` in ('1', '2', '3', '4', '5', '6', '7', '8') and `taggables`.`taggable_type` = 'App\\Models\\Discussion' order by `order_column` asc - [2017-09-05 14:52:14] local.INFO: [3.1729ms] select * from `users` where `users`.`id` in ('1', '2', '4') and `users`.`deleted_at` is null + [2017-09-05 14:52:14] local.DEBUG: [800μs] select count(*) as aggregate from `discussions` where `discussions`.`deleted_at` is null + [2017-09-05 14:52:14] local.DEBUG: [1.07ms] select * from `discussions` where `discussions`.`deleted_at` is null order by `is_top` desc, `created_at` desc limit 15 offset 0 + [2017-09-05 14:52:14] local.DEBUG: [3.63s] select `tags`.*, `taggables`.`taggable_id` as `pivot_taggable_id`, `taggables`.`tag_id` as `pivot_tag_id` from `tags` inner join `taggables` on `tags`.`id` = `taggables`.`tag_id` where `taggables`.`taggable_id` in ('1', '2', '3', '4', '5', '6', '7', '8') and `taggables`.`taggable_type` = 'App\\Models\\Discussion' order by `order_column` asc + [2017-09-05 14:52:14] local.DEBUG: [670μs] select * from `users` where `users`.`id` in ('1', '2', '4') and `users`.`deleted_at` is null ... ## License diff --git a/src/ServiceProvider.php b/src/ServiceProvider.php index 5087460..78f5aee 100644 --- a/src/ServiceProvider.php +++ b/src/ServiceProvider.php @@ -30,8 +30,9 @@ public function boot() $bindings = $query->connection->prepareBindings($query->bindings); $pdo = $query->connection->getPdo(); $realSql = vsprintf($sqlWithPlaceholders, array_map([$pdo, 'quote'], $bindings)); + $duration = $this->formatDuration($query->time / 1000); - Log::debug(sprintf('[%.4fms] %s', (\microtime(true) - LARAVEL_START) * 1000, $realSql)); + Log::debug(sprintf('[%s] %s', $duration, $realSql)); }); } @@ -41,4 +42,22 @@ public function boot() public function register() { } + + /** + * Format duration. + * + * @param float $seconds + * + * @return string + */ + private function formatDuration($seconds) + { + if ($seconds < 0.001) { + return round($seconds * 1000000) . 'μs'; + } elseif ($seconds < 1) { + return round($seconds * 1000, 2) . 'ms'; + } + + return round($seconds, 2) . 's'; + } }