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 Throwable;
15
 
16
/**
17
 * Forwards records to at most one handler
18
 *
19
 * If a handler fails, the exception is suppressed and the record is forwarded to the next handler.
20
 *
21
 * As soon as one handler handles a record successfully, the handling stops there.
22
 *
23
 * @phpstan-import-type Record from \Monolog\Logger
24
 */
25
class FallbackGroupHandler extends GroupHandler
26
{
27
    /**
28
     * {@inheritDoc}
29
     */
30
    public function handle(array $record): bool
31
    {
32
        if ($this->processors) {
33
            /** @var Record $record */
34
            $record = $this->processRecord($record);
35
        }
36
        foreach ($this->handlers as $handler) {
37
            try {
38
                $handler->handle($record);
39
                break;
40
            } catch (Throwable $e) {
41
                // What throwable?
42
            }
43
        }
44
 
45
        return false === $this->bubble;
46
    }
47
 
48
    /**
49
     * {@inheritDoc}
50
     */
51
    public function handleBatch(array $records): void
52
    {
53
        if ($this->processors) {
54
            $processed = [];
55
            foreach ($records as $record) {
56
                $processed[] = $this->processRecord($record);
57
            }
58
            /** @var Record[] $records */
59
            $records = $processed;
60
        }
61
 
62
        foreach ($this->handlers as $handler) {
63
            try {
64
                $handler->handleBatch($records);
65
                break;
66
            } catch (Throwable $e) {
67
                // What throwable?
68
            }
69
        }
70
    }
71
}