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 Monolog\Logger;
15
 
16
/**
17
 * @author Robert Kaufmann III <rok3@rok3.me>
18
 */
19
class LogEntriesHandler extends SocketHandler
20
{
21
    /**
22
     * @var string
23
     */
24
    protected $logToken;
25
 
26
    /**
27
     * @param string     $token  Log token supplied by LogEntries
28
     * @param bool       $useSSL Whether or not SSL encryption should be used.
29
     * @param string     $host   Custom hostname to send the data to if needed
30
     *
31
     * @throws MissingExtensionException If SSL encryption is set to true and OpenSSL is missing
32
     */
33
    public function __construct(
34
        string $token,
35
        bool $useSSL = true,
36
        $level = Logger::DEBUG,
37
        bool $bubble = true,
38
        string $host = 'data.logentries.com',
39
        bool $persistent = false,
40
        float $timeout = 0.0,
41
        float $writingTimeout = 10.0,
42
        ?float $connectionTimeout = null,
43
        ?int $chunkSize = null
44
    ) {
45
        if ($useSSL && !extension_loaded('openssl')) {
46
            throw new MissingExtensionException('The OpenSSL PHP plugin is required to use SSL encrypted connection for LogEntriesHandler');
47
        }
48
 
49
        $endpoint = $useSSL ? 'ssl://' . $host . ':443' : $host . ':80';
50
        parent::__construct(
51
            $endpoint,
52
            $level,
53
            $bubble,
54
            $persistent,
55
            $timeout,
56
            $writingTimeout,
57
            $connectionTimeout,
58
            $chunkSize
59
        );
60
        $this->logToken = $token;
61
    }
62
 
63
    /**
64
     * {@inheritDoc}
65
     */
66
    protected function generateDataStream(array $record): string
67
    {
68
        return $this->logToken . ' ' . $record['formatted'];
69
    }
70
}