Files
Fellowship/fellowship/logger.py
Jaroslav Benes 083cbb1fa7 Initial project structure
Scaffold all modules, route stubs, data models, and config.
No logic implemented yet — all core methods raise NotImplementedError.
Establishes the full directory layout matching the architecture in CLAUDE.md.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-08 14:48:48 +02:00

36 lines
1.0 KiB
Python

"""
Logging setup for Fellowship.
Call setup_logging() once at startup. All modules use standard logging.getLogger(__name__).
Logs are written to logs/{YYYY-MM-DD}.log and to stdout in debug mode.
"""
import logging
import logging.handlers
import os
from datetime import date
def setup_logging() -> None:
os.makedirs("logs", exist_ok=True)
log_file = f"logs/{date.today().isoformat()}.log"
formatter = logging.Formatter(
fmt="%(asctime)s [%(levelname)s] %(name)s%(message)s",
datefmt="%Y-%m-%dT%H:%M:%S",
)
file_handler = logging.handlers.TimedRotatingFileHandler(
log_file, when="midnight", backupCount=30, encoding="utf-8"
)
file_handler.setFormatter(formatter)
file_handler.setLevel(logging.DEBUG)
console_handler = logging.StreamHandler()
console_handler.setFormatter(formatter)
console_handler.setLevel(logging.DEBUG)
root = logging.getLogger()
root.setLevel(logging.DEBUG)
root.addHandler(file_handler)
root.addHandler(console_handler)