Skip to content

Commit 7d8dfc5

Browse files
authored
feat: add request uri to log context (#29)
1 parent 4a2b447 commit 7d8dfc5

File tree

3 files changed

+24
-3
lines changed

3 files changed

+24
-3
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# Change Log
22

3+
## 1.5.0 - unreleased
4+
5+
- Added request uri to log context
6+
37
## 1.4.0 - 2024-10-31
48

59
- Support PHP 8.3 and 8.4

src/LoggerPlugin.php

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,13 @@ public function handleRequest(RequestInterface $request, callable $next, callabl
3131
{
3232
$start = hrtime(true) / 1E6;
3333
$uid = uniqid('', true);
34-
$this->logger->info(sprintf("Sending request:\n%s", $this->formatter->formatRequest($request)), ['uid' => $uid]);
34+
$this->logger->info(
35+
sprintf("Sending request:\n%s", $this->formatter->formatRequest($request)),
36+
[
37+
'uid' => $uid,
38+
'uri' => (string) $request->getUri(),
39+
]
40+
);
3541

3642
return $next($request)->then(function (ResponseInterface $response) use ($start, $uid, $request) {
3743
$milliseconds = (int) round(hrtime(true) / 1E6 - $start);
@@ -41,6 +47,7 @@ public function handleRequest(RequestInterface $request, callable $next, callabl
4147
[
4248
'milliseconds' => $milliseconds,
4349
'uid' => $uid,
50+
'uri' => (string) $request->getUri(),
4451
]
4552
);
4653

@@ -55,6 +62,7 @@ public function handleRequest(RequestInterface $request, callable $next, callabl
5562
'exception' => $exception,
5663
'milliseconds' => $milliseconds,
5764
'uid' => $uid,
65+
'uri' => (string) $request->getUri(),
5866
]
5967
);
6068
} else {
@@ -64,6 +72,7 @@ public function handleRequest(RequestInterface $request, callable $next, callabl
6472
'exception' => $exception,
6573
'milliseconds' => $milliseconds,
6674
'uid' => $uid,
75+
'uri' => (string) $request->getUri(),
6776
]
6877
);
6978
}

tests/LoggerPluginTest.php

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,16 +30,18 @@ public function testLogsRequestAndResponse()
3030
$response = new Response();
3131

3232
$actualResponse = $this->plugin->handleRequest(
33-
new Request('GET', 'http://example.com/'),
33+
new Request('GET', 'http://example.com/path?query=value#fragment'),
3434
fn (RequestInterface $req) => new FulfilledPromise($response),
3535
function () {}
3636
)->wait();
3737

3838
self::assertSame($response, $actualResponse);
3939

4040
self::assertCount(2, $this->logger->logMessages);
41-
self::assertSame("Sending request:\nGET http://example.com/ 1.1", $this->logger->logMessages[0]['info']);
41+
self::assertSame("Sending request:\nGET http://example.com/path?query=value#fragment 1.1", $this->logger->logMessages[0]['info']);
42+
self::assertSame('http://example.com/path?query=value#fragment', $this->logger->logMessages[0]['context']['uri']);
4243
self::assertSame("Received response:\n200 OK 1.1", $this->logger->logMessages[1]['info']);
44+
self::assertSame('http://example.com/path?query=value#fragment', $this->logger->logMessages[1]['context']['uri']);
4345
}
4446

4547
public function testLogsRequestException()
@@ -55,7 +57,9 @@ function () {}
5557
} catch (NetworkException $exception) {
5658
self::assertCount(2, $this->logger->logMessages);
5759
self::assertSame("Sending request:\nGET http://example.com/ 1.1", $this->logger->logMessages[0]['info']);
60+
self::assertSame('http://example.com/', $this->logger->logMessages[0]['context']['uri']);
5861
self::assertSame("Error:\nNetwork error\nwhen sending request:\nGET http://example.com/ 1.1", $this->logger->logMessages[1]['error']);
62+
self::assertSame('http://example.com/', $this->logger->logMessages[1]['context']['uri']);
5963

6064
throw $exception;
6165
}
@@ -75,8 +79,12 @@ function () {}
7579
// Expected
7680
$this->assertCount(2, $this->logger->logMessages);
7781
$this->assertSame("Sending request:\nGET http://example.com/ 1.1", $this->logger->logMessages[0]['info']);
82+
self::assertSame('http://example.com/', $this->logger->logMessages[0]['context']['uri']);
83+
7884
// Ensure there's an error log for the exception
7985
$this->assertStringContainsString("Error:\nNot Found", $this->logger->logMessages[1]['error']);
86+
self::assertSame('http://example.com/', $this->logger->logMessages[1]['context']['uri']);
87+
8088
throw $exception;
8189
}
8290
}

0 commit comments

Comments
 (0)