| import logging | |
| import sys | |
| from pythonjsonlogger import jsonlogger | |
| from contextvars import ContextVar | |
| request_id_var: ContextVar[str] = ContextVar("request_id", default="") | |
| class RequestIdFilter(logging.Filter): | |
| def filter(self, record): | |
| record.request_id = request_id_var.get() | |
| return True | |
| def configure_logging() -> None: | |
| logger = logging.getLogger() | |
| logger.setLevel(logging.INFO) | |
| # Remove existing handlers | |
| for handler in logger.handlers[:]: | |
| logger.removeHandler(handler) | |
| logHandler = logging.StreamHandler(sys.stdout) | |
| formatter = jsonlogger.JsonFormatter('%(asctime)s %(levelname)s %(name)s %(request_id)s %(message)s') | |
| logHandler.setFormatter(formatter) | |
| logHandler.addFilter(RequestIdFilter()) | |
| logger.addHandler(logHandler) | |
| logger = logging.getLogger("support_docs_copilot") | |