reminder-bot/bot/logging_config.py

47 lines
1.1 KiB
Python

"""Logging configuration."""
import logging
import sys
from typing import Optional
def setup_logging(log_level: str = "INFO") -> None:
"""
Configure logging for the application.
Args:
log_level: Logging level (DEBUG, INFO, WARNING, ERROR, CRITICAL)
"""
# Convert string level to logging constant
numeric_level = getattr(logging, log_level.upper(), logging.INFO)
# Configure root logger
logging.basicConfig(
level=numeric_level,
format="%(asctime)s - %(levelname)s - %(name)s - %(message)s",
datefmt="%Y-%m-%d %H:%M:%S",
handlers=[
logging.StreamHandler(sys.stdout)
]
)
# Set aiogram logger level
logging.getLogger("aiogram").setLevel(numeric_level)
# Reduce verbosity of some libraries
logging.getLogger("apscheduler").setLevel(logging.WARNING)
logging.getLogger("asyncio").setLevel(logging.WARNING)
def get_logger(name: str) -> logging.Logger:
"""
Get a logger instance.
Args:
name: Logger name (usually __name__)
Returns:
Logger instance
"""
return logging.getLogger(name)