import logging from db import get_db from db.models.Log import Log from contexts.RequestContext import RequestContext class DatabaseLogHandler(logging.Handler): def __init__(self, application="backend"): super().__init__() self.application = application def emit(self, record): message = self.format(record) level = record.levelname extra = str(getattr(record, 'extra', None)) if hasattr(record, 'extra') else None log_entry = Log(message=message, level=level, application=self.application, extra=extra) print(message) try: with get_db() as session: session.add(log_entry) session.commit() RequestContext.set_error_id(log_entry.id) except Exception: print(f"failed to log")