/ src / config / logging.py
logging.py
 1  """Logging configuration."""
 2  
 3  import logging
 4  
 5  from pydantic import Field
 6  from pydantic_settings import BaseSettings
 7  
 8  
 9  class LoggingConfig(BaseSettings):
10      """Logging configuration."""
11  
12      level: str = Field(
13          default="INFO",
14          description="Logging level (DEBUG, INFO, WARNING, ERROR, CRITICAL)",
15      )
16  
17      def get_level(self) -> int:
18          """Convert string level to logging constant.
19  
20          Returns
21          -------
22          int
23              Logging level constant.
24          """
25          level_map = {
26              "DEBUG": logging.DEBUG,
27              "INFO": logging.INFO,
28              "WARNING": logging.WARNING,
29              "ERROR": logging.ERROR,
30              "CRITICAL": logging.CRITICAL,
31          }
32          level_upper = self.level.upper()
33          if level_upper not in level_map:
34              return logging.INFO  # Default fallback
35          return level_map[level_upper]
36