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

1import logging 

2from collections import deque 

3 

4from jumpstarter_protocol import jumpstarter_pb2 

5 

6 

7class LogHandler(logging.Handler): 

8 def __init__(self, queue: deque): 

9 logging.Handler.__init__(self) 

10 self.queue = queue 

11 self.listener = None 

12 

13 def enqueue(self, record): 

14 self.queue.append(record) 

15 

16 def prepare(self, record): 

17 return jumpstarter_pb2.LogStreamResponse( 

18 uuid="", 

19 severity=record.levelname, 

20 message=self.format(record), 

21 ) 

22 

23 def emit(self, record): 

24 try: 

25 self.enqueue(self.prepare(record)) 

26 except Exception: 

27 self.handleError(record)