PqpHandler   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 45
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 3

Importance

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

3 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 6 1
A write() 0 13 4
A getDefaultFormatter() 0 4 1
1
<?php
2
3
namespace Jacobemerick\MonologPqp;
4
5
use Exception;
6
use Monolog\Formatter\LineFormatter;
7
use Monolog\Handler\AbstractProcessingHandler;
8
use Monolog\Logger;
9
use Particletree\Pqp\Console;
10
11
class PqpHandler extends AbstractProcessingHandler
12
{
13
14
    /**
15
     * @var Console
16
     */
17
    protected $console;
18
19
    /**
20
     * @param Console $console
21
     * @param int     $level
22
     * @param boolean $bubble
23
     */
24
    public function __construct(Console $console, $level = Logger::DEBUG, $bubble = true)
25
    {
26
        parent::__construct($level, $bubble);
27
28
        $this->console = $console;
29
    }
30
31
    /**
32
     * @param array $record
33
     */
34
    protected function write(array $record)
35
    {
36
        if (
37
            $record['level'] >= Logger::ERROR &&
38
            isset($record['context']['exception']) &&
39
            $record['context']['exception'] instanceof Exception
40
        ) {
41
            $this->console->logError($record['context']['exception']);
42
            return;
43
        }
44
45
        $this->console->log($record['formatted']);
46
    }
47
48
    /**
49
     * @return LineFormatter
50
     */
51
    protected function getDefaultFormatter()
52
    {
53
        return new LineFormatter("%channel%.%level_name%: %message%\n");
54
    }
55
}
56