45 lines
1.3 KiB
Python
45 lines
1.3 KiB
Python
"""Logging configuration for the bot."""
|
|
|
|
import logging
|
|
import sys
|
|
|
|
from daemon_boyfriend.config import settings
|
|
|
|
|
|
def setup_logging() -> None:
|
|
"""Configure application-wide logging."""
|
|
# Create formatter
|
|
formatter = logging.Formatter(
|
|
"%(asctime)s - %(name)s - %(levelname)s - %(message)s",
|
|
datefmt="%Y-%m-%d %H:%M:%S",
|
|
)
|
|
|
|
# Configure root logger
|
|
root_logger = logging.getLogger()
|
|
root_logger.setLevel(settings.log_level)
|
|
|
|
# Remove existing handlers
|
|
root_logger.handlers.clear()
|
|
|
|
# Console handler
|
|
console_handler = logging.StreamHandler(sys.stdout)
|
|
console_handler.setFormatter(formatter)
|
|
root_logger.addHandler(console_handler)
|
|
|
|
# Reduce noise from discord.py
|
|
logging.getLogger("discord").setLevel(logging.WARNING)
|
|
logging.getLogger("discord.http").setLevel(logging.WARNING)
|
|
logging.getLogger("discord.gateway").setLevel(logging.WARNING)
|
|
|
|
# Reduce noise from aiohttp
|
|
logging.getLogger("aiohttp").setLevel(logging.WARNING)
|
|
|
|
# Reduce noise from httpx (used by openai/anthropic)
|
|
logging.getLogger("httpx").setLevel(logging.WARNING)
|
|
logging.getLogger("httpcore").setLevel(logging.WARNING)
|
|
|
|
|
|
def get_logger(name: str) -> logging.Logger:
|
|
"""Get a logger with the given name."""
|
|
return logging.getLogger(name)
|