Skip to content

Commit 605816c

Browse files
author
hatsu
committed
возможность логировать заголовки запроса, при необходимости
1 parent f477148 commit 605816c

File tree

3 files changed

+32
-2
lines changed

3 files changed

+32
-2
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,8 @@ return [
119119
Tochka\JsonRpc\Middleware\LogMiddleware::class => [
120120
// Канал лога, в который будут записываться все логи
121121
'channel' => 'default',
122+
// Заголовки которые нужно писать в лог
123+
'headers' => ['accept', 'encoding']
122124
],
123125
Tochka\JsonRpc\Middleware\TokenAuthMiddleware::class => [
124126
'headerName' => 'X-Tochka-Access-Key',

config/jsonrpc.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,13 @@
7171
// 'App\\Http\\TestController1@method' => ['password', 'data.phone_number'],
7272
// 'App\\Http\\TestController2' => ['password', 'data.phone_number']
7373
//]
74+
/**
75+
* Заголовки которые необходимо логировать
76+
*/
77+
//'headers' => [
78+
// 'accept',
79+
// 'encoding'
80+
//]
7481
],
7582
TokenAuthMiddleware::class => [
7683
'headerName' => 'X-Tochka-Access-Key',

src/Middleware/LogMiddleware.php

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,22 @@
22

33
namespace Tochka\JsonRpc\Middleware;
44

5+
use Illuminate\Http\Request;
56
use Illuminate\Support\Facades\Log;
67
use Tochka\JsonRpc\Helpers\ArrayHelper;
78
use Tochka\JsonRpc\Helpers\LogHelper;
89
use Tochka\JsonRpc\Support\JsonRpcRequest;
910

1011
class LogMiddleware
1112
{
12-
public function handle(JsonRpcRequest $request, $next, string $channel = 'default', array $hideParams = [])
13-
{
13+
public function handle(
14+
JsonRpcRequest $request,
15+
$next,
16+
Request $httpRequest,
17+
string $channel = 'default',
18+
array $hideParams = [],
19+
array $headers = []
20+
) {
1421
$logContext = [
1522
'id' => $request->getId(),
1623
];
@@ -31,6 +38,10 @@ public function handle(JsonRpcRequest $request, $next, string $channel = 'defaul
3138
$rules = array_merge($globalRules, $controllerRules, $methodRules);
3239
$logRequest['params'] = LogHelper::hidePrivateData((array) ($request->getRawRequest()->params ?? []), $rules);
3340
}
41+
42+
if (!empty($headers)) {
43+
$logContext['headers'] = $this->addHeaders($httpRequest, $headers);
44+
}
3445

3546
Log::channel($channel)->info('New request', $logContext + ['request' => $logRequest]);
3647

@@ -49,4 +60,14 @@ public function handle(JsonRpcRequest $request, $next, string $channel = 'defaul
4960

5061
return $result;
5162
}
63+
64+
protected function addHeaders(Request $httpRequest, array $headers = []): array
65+
{
66+
$result = [];
67+
foreach ($headers as $header) {
68+
$result[$header] = $httpRequest->header($header);
69+
}
70+
71+
return $result;
72+
}
5273
}

0 commit comments

Comments
 (0)