Subversion-Projekte lars-tiefland.laravel_shop

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
148 lars 1
<?php declare(strict_types=1);
2
 
3
/*
4
 * This file is part of the Monolog package.
5
 *
6
 * (c) Jordi Boggiano <j.boggiano@seld.be>
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 */
11
 
12
namespace Monolog\Formatter;
13
 
14
use Monolog\Logger;
15
 
16
/**
17
 * Formats a log message according to the ChromePHP array format
18
 *
19
 * @author Christophe Coevoet <stof@notk.org>
20
 */
21
class ChromePHPFormatter implements FormatterInterface
22
{
23
    /**
24
     * Translates Monolog log levels to Wildfire levels.
25
     *
26
     * @var array<int, 'log'|'info'|'warn'|'error'>
27
     */
28
    private $logLevels = [
29
        Logger::DEBUG     => 'log',
30
        Logger::INFO      => 'info',
31
        Logger::NOTICE    => 'info',
32
        Logger::WARNING   => 'warn',
33
        Logger::ERROR     => 'error',
34
        Logger::CRITICAL  => 'error',
35
        Logger::ALERT     => 'error',
36
        Logger::EMERGENCY => 'error',
37
    ];
38
 
39
    /**
40
     * {@inheritDoc}
41
     */
42
    public function format(array $record)
43
    {
44
        // Retrieve the line and file if set and remove them from the formatted extra
45
        $backtrace = 'unknown';
46
        if (isset($record['extra']['file'], $record['extra']['line'])) {
47
            $backtrace = $record['extra']['file'].' : '.$record['extra']['line'];
48
            unset($record['extra']['file'], $record['extra']['line']);
49
        }
50
 
51
        $message = ['message' => $record['message']];
52
        if ($record['context']) {
53
            $message['context'] = $record['context'];
54
        }
55
        if ($record['extra']) {
56
            $message['extra'] = $record['extra'];
57
        }
58
        if (count($message) === 1) {
59
            $message = reset($message);
60
        }
61
 
62
        return [
63
            $record['channel'],
64
            $message,
65
            $backtrace,
66
            $this->logLevels[$record['level']],
67
        ];
68
    }
69
 
70
    /**
71
     * {@inheritDoc}
72
     */
73
    public function formatBatch(array $records)
74
    {
75
        $formatted = [];
76
 
77
        foreach ($records as $record) {
78
            $formatted[] = $this->format($record);
79
        }
80
 
81
        return $formatted;
82
    }
83
}