LogEventMiddleware::__construct()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 2
Bugs 1 Features 0
Metric Value
c 2
b 1
f 0
dl 0
loc 5
rs 9.4285
cc 1
eloc 3
nc 1
nop 2
1
<?php
2
3
namespace Clearcode\SimpleBusElkBundle\CommandBus;
4
5
use Clearcode\SimpleBusElkBundle\Logstash\CannotWriteToLogstash;
6
use Clearcode\SimpleBusElkBundle\Logstash\Logstash;
7
use Psr\Log\LoggerInterface;
8
use SimpleBus\Message\Bus\Middleware\MessageBusMiddleware;
9
10
class LogEventMiddleware implements MessageBusMiddleware
11
{
12
    /** @var Logstash */
13
    private $logstash;
14
    /** @var LoggerInterface */
15
    private $logger;
16
17
    /**
18
     * @param Logstash        $logstash
19
     * @param LoggerInterface $logger
20
     */
21
    public function __construct(Logstash $logstash, LoggerInterface $logger)
22
    {
23
        $this->logstash = $logstash;
24
        $this->logger   = $logger;
25
    }
26
27
    /**
28
     * {@inheritdoc}
29
     */
30
    public function handle($message, callable $next)
31
    {
32
        try {
33
            $this->logstash->write($message);
34
        } catch (CannotWriteToLogstash $e) {
35
            $this->logger->error($e->getMessage());
36
        }
37
38
        $next($message);
39
    }
40
}
41