Failed Conditions
Push — master ( 9f23c0...1448ca )
by Adrien
07:45
created

LoggerFactory   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 34
Duplicated Lines 0 %

Test Coverage

Coverage 38.46%

Importance

Changes 0
Metric Value
eloc 14
dl 0
loc 34
ccs 5
cts 13
cp 0.3846
rs 10
c 0
b 0
f 0
wmc 2

1 Method

Rating   Name   Duplication   Size   Complexity  
A __invoke() 0 20 2
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Application\Log;
6
7
use Application\Model\Log;
8
use Doctrine\ORM\EntityManager;
9
use Interop\Container\ContainerInterface;
10
use Zend\Log\Logger;
11
use Zend\Log\Writer\Stream;
12
use Zend\ServiceManager\Factory\FactoryInterface;
13
14
class LoggerFactory implements FactoryInterface
15
{
16
    /**
17
     * @var Logger
18
     */
19
    private $logger;
20
21
    /**
22
     * @param ContainerInterface $container
23
     * @param string $requestedName
24
     * @param null|array $options
25
     *
26
     * @return Logger
27
     */
28 2
    public function __invoke(ContainerInterface $container, $requestedName, array $options = null)
29
    {
30 2
        if (!$this->logger) {
31
            // Log to file
32 1
            $this->logger = new Logger();
33 1
            $fileWriter = new Stream('logs/all.log');
34
            $this->logger->addWriter($fileWriter);
35
36
            $logRepository = $container->get(EntityManager::class)->getRepository(Log::class);
37
            $config = $container->get('config');
38
            $baseUrl = 'https://' . $config['hostname'];
39
40
            $dbWriter = new DbWriter($logRepository, $baseUrl);
41
            $dbWriter->addFilter(Logger::INFO);
42
            $this->logger->addWriter($dbWriter);
43
44
            Logger::registerErrorHandler($this->logger, true);
45
        }
46
47 1
        return $this->logger;
48
    }
49
}
50