| 39 | |
| 40 | |
| 41 | class CallbackLogger(log.MitmLogHandler): |
| 42 | def __init__( |
| 43 | self, |
| 44 | callback: Callable[[LogEntry], None], |
| 45 | ): |
| 46 | super().__init__() |
| 47 | self.callback = callback |
| 48 | self.event_loop = asyncio.get_running_loop() |
| 49 | self.formatter = log.MitmFormatter(colorize=False) |
| 50 | |
| 51 | def emit(self, record: logging.LogRecord) -> None: |
| 52 | entry = LogEntry( |
| 53 | msg=self.format(record), |
| 54 | level=log.LOGGING_LEVELS_TO_LOGENTRY.get(record.levelno, "error"), |
| 55 | ) |
| 56 | self.event_loop.call_soon_threadsafe(self.callback, entry) |
no outgoing calls
no test coverage detected
searching dependent graphs…