Spaces:
Running on Zero
Running on Zero
| """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 | |