The LoggerInterface defines a standard contract for logging functionality in the Omega Logging Package.
It includes methods for logging messages at various severity levels, based on the PSR-3 logging specification:
emergency(): Logs messages when the system is unusable.
critical(): Logs messages for critical conditions.
error(): Logs runtime errors that need monitoring but not immediate action.
warning(): Logs messages for exceptional occurrences that are not errors.
notice(): Logs significant but normal events.
info(): Logs general operational information.
debug(): Logs detailed debugging information for developers.
Each method accepts a string or Stringable message, along with an optional context array for additional details.
The log() method is abstract and must be implemented by concrete classes, allowing them to handle logging at any
arbitrary level. It accepts a level, a message, and an optional context array. The method throws a
LogArgumentException if invalid arguments are provided.
This interface ensures that any logger class implementing it will conform to a common structure, allowing consistent
logging behavior across the application.