LoggerInterface.php
43 lines
| 1 | <?php |
| 2 | |
| 3 | namespace AmeliaBooking\Domain\Services\Logger; |
| 4 | |
| 5 | /** |
| 6 | * Interface LoggerInterface |
| 7 | * |
| 8 | * Minimal domain logging contract with named-channel routing. Intentionally not PSR-3 / |
| 9 | * vendor-typed so Domain code stays free of third-party logging libraries. |
| 10 | * |
| 11 | * @package AmeliaBooking\Domain\Services\Logger |
| 12 | */ |
| 13 | interface LoggerInterface |
| 14 | { |
| 15 | public const CHANNEL_APP = 'app'; |
| 16 | public const CHANNEL_COMMAND = 'command'; |
| 17 | public const CHANNEL_PAYMENT = 'payment'; |
| 18 | public const CHANNEL_SYNC = 'sync'; |
| 19 | public const CHANNEL_NOTIFICATION = 'notification'; |
| 20 | public const CHANNEL_ZOOM = 'zoom'; |
| 21 | public const CHANNEL_USER = 'user'; |
| 22 | public const CHANNEL_SETTINGS = 'settings'; |
| 23 | public const CHANNEL_HTTP = 'http'; |
| 24 | public const CHANNEL_BOOKING = 'booking'; |
| 25 | |
| 26 | /** Log an error message */ |
| 27 | public function error(string $message, array $context = []): void; |
| 28 | |
| 29 | /** Log a warning message */ |
| 30 | public function warning(string $message, array $context = []): void; |
| 31 | |
| 32 | /** Log an informational message */ |
| 33 | public function info(string $message, array $context = []): void; |
| 34 | |
| 35 | /** Log a debug message */ |
| 36 | public function debug(string $message, array $context = []): void; |
| 37 | |
| 38 | /** |
| 39 | * Get a logger scoped to the given named channel (e.g. "payment", "sync", "command"). |
| 40 | */ |
| 41 | public function channel(string $name): LoggerInterface; |
| 42 | } |
| 43 |