Skip to content

Commit 83b2611

Browse files
committed
ICL: Callbacks for overriding request and response logging logic.
1 parent d17ab17 commit 83b2611

File tree

1 file changed

+21
-4
lines changed

1 file changed

+21
-4
lines changed

integrations/guzzle.php

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@
55
use Psr\Log\LoggerInterface;
66

77
if (!function_exists('iclogger_guzzle_middleware')) {
8-
function iclogger_guzzle_middleware(LoggerInterface $log, $type = 'raw')
8+
function iclogger_guzzle_middleware(LoggerInterface $log, $type = 'raw', callable $shouldLogRequest = null, callable $shouldLogResponse = null)
99
{
10-
return function (callable $handler) use ($log, $type) {
11-
return function (RequestInterface $request, array $options) use ($handler, $log, $type) {
10+
return function (callable $handler) use ($log, $type, $shouldLogRequest, $shouldLogResponse) {
11+
return function (RequestInterface $request, array $options) use ($handler, $log, $type, $shouldLogRequest, $shouldLogResponse) {
1212
$method = (string) $request->getMethod();
1313
$uri = (string) $request->getUri();
1414
$body = (string) $request->getBody();
@@ -30,10 +30,19 @@ function iclogger_guzzle_middleware(LoggerInterface $log, $type = 'raw')
3030
break;
3131
}
3232
}
33+
34+
if (!empty($shouldLogRequest)) {
35+
$shouldLogRequest = call_user_func($shouldLogRequest, $request);
36+
if (!$shouldLogRequest) {
37+
$message = "[{$method}] Calling `{$uri}`, body is not shown according to minimization mode.";
38+
$context = [];
39+
}
40+
}
41+
3342
$log->info($message, $context);
3443

3544
return $handler($request, $options)->then(
36-
function ($response) use ($log, $type) {
45+
function ($response) use ($request, $log, $type, $shouldLogResponse) {
3746
$body = (string) $response->getBody();
3847
$code = $response->getStatusCode();
3948

@@ -56,6 +65,14 @@ function ($response) use ($log, $type) {
5665
$response->iclParsedBody = $context;
5766
}
5867

68+
if (!empty($shouldLogResponse)) {
69+
$shouldLogResponse = call_user_func($shouldLogResponse, $request, $response);
70+
if (!$shouldLogResponse) {
71+
$message = "[{$code}] Response is not shown according to minimization mode.";
72+
$context = [];
73+
}
74+
}
75+
5976
$log->info($message, $context);
6077

6178
return $response;

0 commit comments

Comments
 (0)