Spaces:
Running on Zero
Running on Zero
File size: 1,333 Bytes
f7e32a5 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | """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
|