StandardFileLoggerFactory   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 30
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
eloc 17
dl 0
loc 30
ccs 16
cts 16
cp 1
rs 10
c 0
b 0
f 0
wmc 2

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __invoke() 0 20 1
A getDefaultLogDirectory() 0 3 1
1
<?php
2
3
declare(strict_types=1);
4
5
/**
6
 * @see       https://github.com/soluble-io/soluble-mediatools-cli for the canonical repository
7
 *
8
 * @copyright Copyright (c) 2018-2019 Sébastien Vanvelthem. (https://github.com/belgattitude)
9
 * @license   https://github.com/soluble-io/soluble-mediatools-cli/blob/master/LICENSE.md MIT
10
 */
11
12
namespace Soluble\MediaTools\Cli\Infra;
13
14
use Monolog\Handler\StreamHandler;
15
use Monolog\Logger;
16
use Monolog\Processor\PsrLogMessageProcessor;
17
use Psr\Container\ContainerInterface;
18
use Psr\Log\LoggerInterface;
19
use Soluble\MediaTools\Cli\Config\ConfigProvider;
20
21
class StandardFileLoggerFactory
22
{
23
    public const STANDARD_LOG_FILE = 'mediatools.log';
24
    public const ERROR_LOG_FILE    = 'mediatools-error.log';
25
26 7
    public function __invoke(ContainerInterface $container): LoggerInterface
27
    {
28 7
        $logger = new Logger('soluble-mediatools');
29 7
        $logger->pushHandler(new StreamHandler(
30 7
            self::getDefaultLogDirectory() . DIRECTORY_SEPARATOR . self::STANDARD_LOG_FILE,
31 7
            Logger::INFO,
32 7
            true,
33 7
            0660
34
        ));
35
36 7
        $logger->pushHandler(new StreamHandler(
37 7
            self::getDefaultLogDirectory() . DIRECTORY_SEPARATOR . self::ERROR_LOG_FILE,
38 7
            Logger::ERROR,
39 7
            true,
40 7
            0660
41
        ));
42
43 7
        $logger->pushProcessor(new PsrLogMessageProcessor());
44
45 7
        return $logger;
46
    }
47
48 7
    public static function getDefaultLogDirectory(): string
49
    {
50 7
        return ConfigProvider::getProjectLogDirectory();
51
    }
52
}
53