PluginProbe ʕ •ᴥ•ʔ
Booking for Appointments and Events Calendar – Amelia / 2.4.8
Booking for Appointments and Events Calendar – Amelia v2.4.8
2.4.9 2.4.8 2.4.7 2.4.6 2.4.5 2.4.4 2.4.3 2.4.2 2.4.1 2.4 trunk 1.2.1 1.2.10 1.2.11 1.2.12 1.2.13 1.2.14 1.2.15 1.2.16 1.2.17 1.2.18 1.2.19 1.2.2 1.2.20 1.2.21 1.2.22 1.2.23 1.2.24 1.2.25 1.2.26 1.2.27 1.2.28 1.2.29 1.2.3 1.2.30 1.2.31 1.2.32 1.2.33 1.2.34 1.2.35 1.2.36 1.2.37 1.2.38 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 2.0 2.0.1 2.0.2 2.1 2.1.1 2.1.2 2.1.3 2.2 2.2.1 2.3
ameliabooking / src / Infrastructure / Services / Logger / MonologChannelLogger.php
ameliabooking / src / Infrastructure / Services / Logger Last commit date
JsonLineFormatter.php 1 week ago LogDirectoryManager.php 1 week ago LogRetentionCleanupService.php 1 week ago LogSanitizer.php 1 week ago MonologChannelLogger.php 1 week ago MonologLoggerFactory.php 1 week ago RequestIdProcessor.php 1 week ago
MonologChannelLogger.php
61 lines
1 <?php
2
3 namespace AmeliaBooking\Infrastructure\Services\Logger;
4
5 use AmeliaBooking\Domain\Services\Logger\LoggerInterface;
6
7 /**
8 * Class MonologChannelLogger
9 *
10 * Domain LoggerInterface backed by Monolog. Level methods route to the instance's channel
11 * ("app" unless obtained via channel($name)).
12 *
13 * @package AmeliaBooking\Infrastructure\Services\Logger
14 */
15 class MonologChannelLogger implements LoggerInterface
16 {
17 private MonologLoggerFactory $factory;
18
19 private string $channelName;
20
21 public function __construct(MonologLoggerFactory $factory, string $channelName = self::CHANNEL_APP)
22 {
23 $this->factory = $factory;
24 $this->channelName = $channelName;
25 }
26
27 public function channel(string $name): LoggerInterface
28 {
29 return new self($this->factory, $name);
30 }
31
32 public function error(string $message, array $context = []): void
33 {
34 $this->write('error', $message, $context);
35 }
36
37 public function warning(string $message, array $context = []): void
38 {
39 $this->write('warning', $message, $context);
40 }
41
42 public function info(string $message, array $context = []): void
43 {
44 $this->write('info', $message, $context);
45 }
46
47 public function debug(string $message, array $context = []): void
48 {
49 $this->write('debug', $message, $context);
50 }
51
52 private function write(string $level, string $message, array $context): void
53 {
54 try {
55 $this->factory->getLogger($this->channelName)->{$level}($message, $context);
56 } catch (\Throwable $e) {
57 // Telemetry must never break application flow after side effects.
58 }
59 }
60 }
61