Coverage for arclith / domain / ports / logger.py: 100%
22 statements
« prev ^ index » next coverage.py v7.13.5, created at 2026-03-25 15:02 +0100
« prev ^ index » next coverage.py v7.13.5, created at 2026-03-25 15:02 +0100
1from abc import ABC, abstractmethod
2from enum import Enum
3from typing import Any
6class LogLevel(Enum):
7 DEBUG = "DEBUG"
8 INFO = "INFO"
9 WARNING = "WARNING"
10 ERROR = "ERROR"
11 CRITICAL = "CRITICAL"
14class Logger(ABC):
15 @abstractmethod
16 def log(self, level: LogLevel, message: str, **metadata: Any) -> None:
17 pass # pragma: no cover
19 def debug(self, message: str, **metadata: Any) -> None:
20 self.log(LogLevel.DEBUG, message, **metadata)
22 def info(self, message: str, **metadata: Any) -> None:
23 self.log(LogLevel.INFO, message, **metadata)
25 def warning(self, message: str, **metadata: Any) -> None:
26 self.log(LogLevel.WARNING, message, **metadata)
28 def error(self, message: str, **metadata: Any) -> None:
29 self.log(LogLevel.ERROR, message, **metadata)
31 def critical(self, message: str, **metadata: Any) -> None:
32 self.log(LogLevel.CRITICAL, message, **metadata)