""" Logging configuration for the application. """ import logging import sys from typing import Optional from app.core.config import settings def setup_logging( logger_name: str = "daily_journal_prompt", log_level: Optional[str] = None, ) -> logging.Logger: """ Set up logging configuration. Args: logger_name: Name of the logger log_level: Logging level (DEBUG, INFO, WARNING, ERROR, CRITICAL) Returns: Configured logger instance """ if log_level is None: log_level = "DEBUG" if settings.DEBUG else "INFO" # Create logger logger = logging.getLogger(logger_name) logger.setLevel(getattr(logging, log_level.upper())) # Remove existing handlers to avoid duplicates logger.handlers.clear() # Create console handler console_handler = logging.StreamHandler(sys.stdout) console_handler.setLevel(getattr(logging, log_level.upper())) # Create formatter formatter = logging.Formatter( "%(asctime)s - %(name)s - %(levelname)s - %(message)s", datefmt="%Y-%m-%d %H:%M:%S" ) console_handler.setFormatter(formatter) # Add handler to logger logger.addHandler(console_handler) # Prevent propagation to root logger logger.propagate = False return logger