PluginProbe ʕ •ᴥ•ʔ
Matomo Analytics – Powerful, Privacy-First Insights for WordPress / 5.12.1
Matomo Analytics – Powerful, Privacy-First Insights for WordPress v5.12.1
5.12.1 5.12.0 5.11.1 5.11.0 5.10.2 5.10.1 trunk 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.1.0 1.1.1 1.1.2 1.1.3 1.2.0 1.3.0 1.3.1 1.3.2 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.1.0 4.1.1 4.1.2 4.1.3 4.10.0 4.11.0 4.12.0 4.13.0 4.13.2 4.13.3 4.13.4 4.13.5 4.14.0 4.14.1 4.14.2 4.15.0 4.15.1 4.15.2 4.15.3 4.2.0 4.3.0 4.3.1 4.4.1 4.4.2 4.5.0 4.6.0 5.0.1 5.0.2 5.0.3 5.0.4 5.0.5 5.0.6 5.0.7 5.0.8 5.1.0 5.1.1 5.1.2 5.1.3 5.1.4 5.1.5 5.1.6 5.1.7 5.10.0 5.2.0 5.2.1 5.2.2 5.3.0 5.3.1 5.3.2 5.3.3 5.6.0 5.6.1 5.7.0 5.7.1 5.8.0 5.8.1 5.8.2
matomo / app / vendor / prefixed / symfony / monolog-bridge / Handler / NotifierHandler.php
matomo / app / vendor / prefixed / symfony / monolog-bridge / Handler Last commit date
FingersCrossed 1 year ago ChromePhpHandler.php 1 year ago ConsoleHandler.php 1 year ago ElasticsearchLogstashHandler.php 1 year ago FirePHPHandler.php 1 year ago MailerHandler.php 1 year ago NotifierHandler.php 1 year ago ServerLogHandler.php 2 months ago SwiftMailerHandler.php 1 year ago
NotifierHandler.php
70 lines
1 <?php
2
3 /*
4 * This file is part of the Symfony package.
5 *
6 * (c) Fabien Potencier <fabien@symfony.com>
7 *
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
10 */
11 namespace Matomo\Dependencies\Symfony\Bridge\Monolog\Handler;
12
13 use Matomo\Dependencies\Monolog\Handler\AbstractHandler;
14 use Matomo\Dependencies\Monolog\Logger;
15 use Symfony\Component\Notifier\Notification\Notification;
16 use Symfony\Component\Notifier\Notifier;
17 use Symfony\Component\Notifier\NotifierInterface;
18 /**
19 * Uses Notifier as a log handler.
20 *
21 * @author Fabien Potencier <fabien@symfony.com>
22 */
23 class NotifierHandler extends AbstractHandler
24 {
25 private $notifier;
26 /**
27 * @param string|int $level The minimum logging level at which this handler will be triggered
28 */
29 public function __construct(NotifierInterface $notifier, $level = Logger::ERROR, bool $bubble = \true)
30 {
31 $this->notifier = $notifier;
32 parent::__construct(Logger::toMonologLevel($level) < Logger::ERROR ? Logger::ERROR : $level, $bubble);
33 }
34 public function handle(array $record) : bool
35 {
36 if (!$this->isHandling($record)) {
37 return \false;
38 }
39 $this->notify([$record]);
40 return !$this->bubble;
41 }
42 public function handleBatch(array $records) : void
43 {
44 if ($records = array_filter($records, [$this, 'isHandling'])) {
45 $this->notify($records);
46 }
47 }
48 private function notify(array $records) : void
49 {
50 $record = $this->getHighestRecord($records);
51 if (($record['context']['exception'] ?? null) instanceof \Throwable) {
52 $notification = Notification::fromThrowable($record['context']['exception']);
53 } else {
54 $notification = new Notification($record['message']);
55 }
56 $notification->importanceFromLogLevelName(Logger::getLevelName($record['level']));
57 $this->notifier->send($notification, ...$this->notifier->getAdminRecipients());
58 }
59 private function getHighestRecord(array $records)
60 {
61 $highestRecord = null;
62 foreach ($records as $record) {
63 if (null === $highestRecord || $highestRecord['level'] < $record['level']) {
64 $highestRecord = $record;
65 }
66 }
67 return $highestRecord;
68 }
69 }
70