···
6
+
from abc import ABC, abstractmethod
from contextlib import contextmanager
from queue import Empty, Queue
from typing import Any, Dict, Iterator
···
from colorama import Fore, Style
16
+
class AbstractLogger(ABC):
18
+
def log(self, message: str, attributes: Dict[str, str] = {}) -> None:
23
+
def subtest(self, name: str, attributes: Dict[str, str] = {}) -> Iterator[None]:
28
+
def nested(self, message: str, attributes: Dict[str, str] = {}) -> Iterator[None]:
32
+
def info(self, *args, **kwargs) -> None: # type: ignore
36
+
def warning(self, *args, **kwargs) -> None: # type: ignore
40
+
def error(self, *args, **kwargs) -> None: # type: ignore
44
+
def log_serial(self, message: str, machine: str) -> None:
48
+
def print_serial_logs(self, enable: bool) -> None:
52
+
class Logger(AbstractLogger):
def __init__(self) -> None:
self.logfile = os.environ.get("LOGFILE", "/dev/null")
self.logfile_handle = codecs.open(self.logfile, "wb")
···
self.xml.endElement("nest")
150
+
rootlog: AbstractLogger = Logger()