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