LogEventMiddleware   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 31
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 3

Importance

Changes 2
Bugs 1 Features 0
Metric Value
wmc 3
c 2
b 1
f 0
lcom 1
cbo 3
dl 0
loc 31
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 5 1
A handle() 0 10 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