1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- <?php
- namespace Psr\Log;
- /**
- * This is a simple Logger trait that classes unable to extend AbstractLogger
- * (because they extend another class, etc) can include.
- *
- * It simply delegates all log-level-specific methods to the `log` method to
- * reduce boilerplate code that a simple Logger that does the same thing with
- * messages regardless of the error level has to implement.
- */
- trait LoggerTrait
- {
- /**
- * System is unusable.
- */
- public function emergency(string|\Stringable $message, array $context = []): void
- {
- $this->log(LogLevel::EMERGENCY, $message, $context);
- }
- /**
- * Action must be taken immediately.
- *
- * Example: Entire website down, database unavailable, etc. This should
- * trigger the SMS alerts and wake you up.
- */
- public function alert(string|\Stringable $message, array $context = []): void
- {
- $this->log(LogLevel::ALERT, $message, $context);
- }
- /**
- * Critical conditions.
- *
- * Example: Application component unavailable, unexpected exception.
- */
- public function critical(string|\Stringable $message, array $context = []): void
- {
- $this->log(LogLevel::CRITICAL, $message, $context);
- }
- /**
- * Runtime errors that do not require immediate action but should typically
- * be logged and monitored.
- */
- public function error(string|\Stringable $message, array $context = []): void
- {
- $this->log(LogLevel::ERROR, $message, $context);
- }
- /**
- * Exceptional occurrences that are not errors.
- *
- * Example: Use of deprecated APIs, poor use of an API, undesirable things
- * that are not necessarily wrong.
- */
- public function warning(string|\Stringable $message, array $context = []): void
- {
- $this->log(LogLevel::WARNING, $message, $context);
- }
- /**
- * Normal but significant events.
- */
- public function notice(string|\Stringable $message, array $context = []): void
- {
- $this->log(LogLevel::NOTICE, $message, $context);
- }
- /**
- * Interesting events.
- *
- * Example: User logs in, SQL logs.
- */
- public function info(string|\Stringable $message, array $context = []): void
- {
- $this->log(LogLevel::INFO, $message, $context);
- }
- /**
- * Detailed debug information.
- */
- public function debug(string|\Stringable $message, array $context = []): void
- {
- $this->log(LogLevel::DEBUG, $message, $context);
- }
- /**
- * Logs with an arbitrary level.
- *
- * @param mixed $level
- *
- * @throws \Psr\Log\InvalidArgumentException
- */
- abstract public function log($level, string|\Stringable $message, array $context = []): void;
- }
|