Skip to content

Commit 7d01d7e

Browse files
firecowmjncegodk
andauthored
Only log event.duration if startTime is defined (#56)
* Only log executionTimeNS if startTime can be deducted in middleware handle * Update RequestLog.php * Update LogRequest.php * Update LogRequest.php * Update RequestLog.php * Update LogRequest.php * Update LogRequest.php * Update LogRequest.php * Fix php-cs-fixer findings * Don't set it to null * LARAVEL_START constant * Update LogRequest.php --------- Co-authored-by: Mads Jon Nielsen <[email protected]>
1 parent 53d4dcc commit 7d01d7e

File tree

2 files changed

+14
-7
lines changed

2 files changed

+14
-7
lines changed

src/RequestLog/Data/RequestLog.php

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public function __construct(
2222
public readonly array $responseCookies,
2323
public readonly string $responseBody,
2424
public ?Throwable $responseException,
25-
public int $executionTimeNs,
25+
public ?int $executionTimeNs,
2626
) {
2727
}
2828

@@ -52,14 +52,17 @@ public function log()
5252
],
5353
'route' => $this->routeUri,
5454
],
55-
'event' => [
56-
'duration' => $this->executionTimeNs, // In nanoseconds, see https://www.elastic.co/guide/en/ecs/current/ecs-event.html
57-
],
5855
'log' => [
5956
'type' => 'request-logs',
6057
],
6158
];
6259

60+
if ($this->executionTimeNs !== null) {
61+
$context['event'] = [
62+
'duration' => $this->executionTimeNs, // In nanoseconds, see https://www.elastic.co/guide/en/ecs/current/ecs-event.html
63+
];
64+
}
65+
6366
if($this->responseException !== null) {
6467
$message = $this->responseException->getMessage();
6568
$message = empty($message) ? get_class($this->responseException) . ' thrown with empty message' : $message;

src/RequestLog/Middleware/LogRequest.php

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@ class LogRequest
1717
/**
1818
* Holds the start time of the request
1919
*
20-
* @var int $startTime
20+
* @var ?int $startTime
2121
*/
22-
protected $startTime;
22+
protected $startTime = null;
2323

2424
/** Holds the request cookies. Some middleware will change the cookies, thus we need to save it from handle
2525
*
@@ -103,7 +103,11 @@ private function logRequest(Request $request, Response $response): void
103103
return;
104104
}
105105

106-
$executionTimeNs = hrtime(true) - $this->startTime;
106+
$executionTimeNs = null;
107+
108+
if ( ! is_null($this->startTime)) {
109+
$executionTimeNs = hrtime(true) - $this->startTime;
110+
}
107111

108112
$responseHeaders = $response->headers->all();
109113
unset($responseHeaders['set-cookie']);

0 commit comments

Comments
 (0)