ruby2210/todo-manager
0
1import logging2import sys3from src.core.config import settings4 5 6def setup_logging():7 """8 Set up logging configuration for the application.9 """10 # Create formatter11 formatter = logging.Formatter(12 fmt="%(asctime)s - %(name)s - %(levelname)s - %(message)s",13 datefmt="%Y-%m-%d %H:%M:%S"14 )15 16 # Create handler17 handler = logging.StreamHandler(sys.stdout)18 handler.setFormatter(formatter)19 20 # Configure root logger21 root_logger = logging.getLogger()22 root_logger.setLevel(logging.DEBUG if settings.DEBUG else logging.INFO)23 root_logger.addHandler(handler)24 25 # Configure specific loggers26 logging.getLogger("sqlalchemy.engine").setLevel(logging.WARNING) # Reduce SQLAlchemy noise27 logging.getLogger("uvicorn").setLevel(logging.INFO)28 logging.getLogger("fastapi").setLevel(logging.INFO)29 30 31def get_logger(name: str) -> logging.Logger:32 """33 Get a configured logger instance.34 35 Args:36 name: Name of the logger37 38 Returns:39 Configured logger instance40 """41 return logging.getLogger(name)