Coverage for /Users/ajo/work/jumpstarter/jumpstarter/packages/jumpstarter/jumpstarter/exporter/logging.py: 88%
17 statements
« prev ^ index » next coverage.py v7.8.0, created at 2025-05-06 10:21 +0200
« prev ^ index » next coverage.py v7.8.0, created at 2025-05-06 10:21 +0200
1import logging
2from collections import deque
4from jumpstarter_protocol import jumpstarter_pb2
7class LogHandler(logging.Handler):
8 def __init__(self, queue: deque):
9 logging.Handler.__init__(self)
10 self.queue = queue
11 self.listener = None
13 def enqueue(self, record):
14 self.queue.append(record)
16 def prepare(self, record):
17 return jumpstarter_pb2.LogStreamResponse(
18 uuid="",
19 severity=record.levelname,
20 message=self.format(record),
21 )
23 def emit(self, record):
24 try:
25 self.enqueue(self.prepare(record))
26 except Exception:
27 self.handleError(record)