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
/**
15
 * Encodes message information into JSON in a format compatible with Logmatic.
16
 *
17
 * @author Julien Breux <julien.breux@gmail.com>
18
 */
19
class LogmaticFormatter extends JsonFormatter
20
{
21
    protected const MARKERS = ["sourcecode", "php"];
22
 
23
    /**
24
     * @var string
25
     */
26
    protected $hostname = '';
27
 
28
    /**
29
     * @var string
30
     */
31
    protected $appname = '';
32
 
33
    public function setHostname(string $hostname): self
34
    {
35
        $this->hostname = $hostname;
36
 
37
        return $this;
38
    }
39
 
40
    public function setAppname(string $appname): self
41
    {
42
        $this->appname = $appname;
43
 
44
        return $this;
45
    }
46
 
47
    /**
48
     * Appends the 'hostname' and 'appname' parameter for indexing by Logmatic.
49
     *
50
     * @see http://doc.logmatic.io/docs/basics-to-send-data
51
     * @see \Monolog\Formatter\JsonFormatter::format()
52
     */
53
    public function format(array $record): string
54
    {
55
        if (!empty($this->hostname)) {
56
            $record["hostname"] = $this->hostname;
57
        }
58
        if (!empty($this->appname)) {
59
            $record["appname"] = $this->appname;
60
        }
61
 
62
        $record["@marker"] = static::MARKERS;
63
 
64
        return parent::format($record);
65
    }
66
}