From 63ab77f32aef643df0ce045618c4432abc1c63fa Mon Sep 17 00:00:00 2001 From: Marin Binzari Date: Thu, 6 Nov 2025 09:52:44 +0200 Subject: [PATCH 1/2] feat: add uri to log context --- src/LoggerPlugin.php | 11 ++++++++++- tests/LoggerPluginTest.php | 12 ++++++++++-- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/src/LoggerPlugin.php b/src/LoggerPlugin.php index 87dc914..366ab4b 100644 --- a/src/LoggerPlugin.php +++ b/src/LoggerPlugin.php @@ -31,7 +31,13 @@ public function handleRequest(RequestInterface $request, callable $next, callabl { $start = hrtime(true) / 1E6; $uid = uniqid('', true); - $this->logger->info(sprintf("Sending request:\n%s", $this->formatter->formatRequest($request)), ['uid' => $uid]); + $this->logger->info( + sprintf("Sending request:\n%s", $this->formatter->formatRequest($request)), + [ + 'uid' => $uid, + 'uri' => (string) $request->getUri(), + ] + ); return $next($request)->then(function (ResponseInterface $response) use ($start, $uid, $request) { $milliseconds = (int) round(hrtime(true) / 1E6 - $start); @@ -41,6 +47,7 @@ public function handleRequest(RequestInterface $request, callable $next, callabl [ 'milliseconds' => $milliseconds, 'uid' => $uid, + 'uri' => (string) $request->getUri(), ] ); @@ -55,6 +62,7 @@ public function handleRequest(RequestInterface $request, callable $next, callabl 'exception' => $exception, 'milliseconds' => $milliseconds, 'uid' => $uid, + 'uri' => (string) $request->getUri(), ] ); } else { @@ -64,6 +72,7 @@ public function handleRequest(RequestInterface $request, callable $next, callabl 'exception' => $exception, 'milliseconds' => $milliseconds, 'uid' => $uid, + 'uri' => (string) $request->getUri(), ] ); } diff --git a/tests/LoggerPluginTest.php b/tests/LoggerPluginTest.php index 78d56a6..95ed6ec 100644 --- a/tests/LoggerPluginTest.php +++ b/tests/LoggerPluginTest.php @@ -30,7 +30,7 @@ public function testLogsRequestAndResponse() $response = new Response(); $actualResponse = $this->plugin->handleRequest( - new Request('GET', 'http://example.com/'), + new Request('GET', 'http://example.com/path?query=value#fragment'), fn (RequestInterface $req) => new FulfilledPromise($response), function () {} )->wait(); @@ -38,8 +38,10 @@ function () {} self::assertSame($response, $actualResponse); self::assertCount(2, $this->logger->logMessages); - self::assertSame("Sending request:\nGET http://example.com/ 1.1", $this->logger->logMessages[0]['info']); + self::assertSame("Sending request:\nGET http://example.com/path?query=value#fragment 1.1", $this->logger->logMessages[0]['info']); + self::assertSame('http://example.com/path?query=value#fragment', $this->logger->logMessages[0]['context']['uri']); self::assertSame("Received response:\n200 OK 1.1", $this->logger->logMessages[1]['info']); + self::assertSame('http://example.com/path?query=value#fragment', $this->logger->logMessages[1]['context']['uri']); } public function testLogsRequestException() @@ -55,7 +57,9 @@ function () {} } catch (NetworkException $exception) { self::assertCount(2, $this->logger->logMessages); self::assertSame("Sending request:\nGET http://example.com/ 1.1", $this->logger->logMessages[0]['info']); + self::assertSame('http://example.com/', $this->logger->logMessages[0]['context']['uri']); self::assertSame("Error:\nNetwork error\nwhen sending request:\nGET http://example.com/ 1.1", $this->logger->logMessages[1]['error']); + self::assertSame('http://example.com/', $this->logger->logMessages[1]['context']['uri']); throw $exception; } @@ -75,8 +79,12 @@ function () {} // Expected $this->assertCount(2, $this->logger->logMessages); $this->assertSame("Sending request:\nGET http://example.com/ 1.1", $this->logger->logMessages[0]['info']); + self::assertSame('http://example.com/', $this->logger->logMessages[0]['context']['uri']); + // Ensure there's an error log for the exception $this->assertStringContainsString("Error:\nNot Found", $this->logger->logMessages[1]['error']); + self::assertSame('http://example.com/', $this->logger->logMessages[1]['context']['uri']); + throw $exception; } } From 4e711273394e8f28ffd02ac2897bbaacd2710eb8 Mon Sep 17 00:00:00 2001 From: Marin Binzari Date: Thu, 6 Nov 2025 10:03:40 +0200 Subject: [PATCH 2/2] update changelog --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c0e2fdb..bdc00c6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Change Log +## 1.4.1 - unreleased + +- Added request uri to log context + ## 1.4.0 - 2024-10-31 - Support PHP 8.3 and 8.4