V8 / utils /logging.py
Drizzy0101's picture
Initial upload
f7e32a5
Raw
History Blame Contribute Delete
1.33 kB
"""Logging configuration — structured logging for Synapse."""
import logging
import sys
from pathlib import Path
from config import LOGS_DIR, config
def setup_logging():
LOGS_DIR.mkdir(exist_ok=True)
root_logger = logging.getLogger("synapse")
root_logger.setLevel(logging.DEBUG if config.debug else logging.INFO)
console_handler = logging.StreamHandler(sys.stdout)
console_handler.setLevel(logging.DEBUG if config.debug else logging.INFO)
console_fmt = logging.Formatter(
"[%(asctime)s] %(name)s %(levelname)s: %(message)s",
datefmt="%H:%M:%S",
)
console_handler.setFormatter(console_fmt)
root_logger.addHandler(console_handler)
file_handler = logging.FileHandler(LOGS_DIR / "synapse.log")
file_handler.setLevel(logging.DEBUG)
file_fmt = logging.Formatter(
"[%(asctime)s] %(name)s %(levelname)s %(filename)s:%(lineno)d: %(message)s"
)
file_handler.setFormatter(file_fmt)
root_logger.addHandler(file_handler)
error_handler = logging.FileHandler(LOGS_DIR / "errors.log")
error_handler.setLevel(logging.ERROR)
error_handler.setFormatter(file_fmt)
root_logger.addHandler(error_handler)
logging.getLogger("uvicorn").setLevel(logging.WARNING)
logging.getLogger("httpx").setLevel(logging.WARNING)
return root_logger