RequestLogger   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 35
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
dl 0
loc 35
rs 10
c 0
b 0
f 0
wmc 2

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
A log() 0 8 1
1
<?php
2
3
namespace San4io\RequestLogger\Logger;
4
5
use Symfony\Component\HttpFoundation\Request;
6
use Symfony\Component\HttpFoundation\Response;
7
use Monolog\Logger;
8
use Psr\Log\LoggerInterface;
9
10
class RequestLogger
11
{
12
    /**
13
     * @var LoggerInterface
14
     */
15
    protected $logger;
16
17
    /**
18
     * @var LogContextFormatter
19
     */
20
    protected $logContextFormatter;
21
22
    /**
23
     * RequestLogger constructor.
24
     * @param LoggerInterface $logger
25
     * @param LogContextFormatter $logContextFormatter
26
     */
27
    public function __construct(LoggerInterface $logger, LogContextFormatter $logContextFormatter)
28
    {
29
        $this->logger = $logger;
30
        $this->logContextFormatter = $logContextFormatter;
31
    }
32
33
    /**
34
     * @param Request $request
35
     * @param Response $response
36
     */
37
    public function log(Request $request, Response $response)
38
    {
39
        $context = $this->logContextFormatter->format($request, $response);
40
41
        $this->logger->log(
42
            Logger::INFO,
43
            $request->getMethod() . ' ' . $request->getUri(),
44
            $context
45
        );
46
    }
47
}