5
5
use Psr \Log \LoggerInterface ;
6
6
7
7
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 )
9
9
{
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 ) {
12
12
$ method = (string ) $ request ->getMethod ();
13
13
$ uri = (string ) $ request ->getUri ();
14
14
$ body = (string ) $ request ->getBody ();
@@ -30,10 +30,19 @@ function iclogger_guzzle_middleware(LoggerInterface $log, $type = 'raw')
30
30
break ;
31
31
}
32
32
}
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
+
33
42
$ log ->info ($ message , $ context );
34
43
35
44
return $ handler ($ request , $ options )->then (
36
- function ($ response ) use ($ log , $ type ) {
45
+ function ($ response ) use ($ request , $ log , $ type, $ shouldLogResponse ) {
37
46
$ body = (string ) $ response ->getBody ();
38
47
$ code = $ response ->getStatusCode ();
39
48
@@ -56,6 +65,14 @@ function ($response) use ($log, $type) {
56
65
$ response ->iclParsedBody = $ context ;
57
66
}
58
67
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
+
59
76
$ log ->info ($ message , $ context );
60
77
61
78
return $ response ;
0 commit comments