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\Handler;
13
 
14
use Gelf\PublisherInterface;
15
use Monolog\Logger;
16
use Monolog\Formatter\GelfMessageFormatter;
17
use Monolog\Formatter\FormatterInterface;
18
 
19
/**
20
 * Handler to send messages to a Graylog2 (http://www.graylog2.org) server
21
 *
22
 * @author Matt Lehner <mlehner@gmail.com>
23
 * @author Benjamin Zikarsky <benjamin@zikarsky.de>
24
 */
25
class GelfHandler extends AbstractProcessingHandler
26
{
27
    /**
28
     * @var PublisherInterface the publisher object that sends the message to the server
29
     */
30
    protected $publisher;
31
 
32
    /**
33
     * @param PublisherInterface $publisher a gelf publisher object
34
     */
35
    public function __construct(PublisherInterface $publisher, $level = Logger::DEBUG, bool $bubble = true)
36
    {
37
        parent::__construct($level, $bubble);
38
 
39
        $this->publisher = $publisher;
40
    }
41
 
42
    /**
43
     * {@inheritDoc}
44
     */
45
    protected function write(array $record): void
46
    {
47
        $this->publisher->publish($record['formatted']);
48
    }
49
 
50
    /**
51
     * {@inheritDoc}
52
     */
53
    protected function getDefaultFormatter(): FormatterInterface
54
    {
55
        return new GelfMessageFormatter();
56
    }
57
}