Passed
Push — master ( 2b82e3...d3dd66 )
by Sébastien
01:43
created

getDefaultLogDirectory()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 0
dl 0
loc 3
ccs 2
cts 2
cp 1
crap 1
rs 10
c 0
b 0
f 0
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