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