MCPcopy Create free account
hub / github.com/F-Stack/f-stack / DTSLOG

Class DTSLOG

dpdk/dts/framework/logger.py:31–100  ·  view source on GitHub ↗

DTS log class for framework and testsuite.

Source from the content-addressed store, hash-verified

29
30
31class DTSLOG(logging.LoggerAdapter):
32 """
33 DTS log class for framework and testsuite.
34 """
35
36 _logger: logging.Logger
37 node: str
38 sh: logging.StreamHandler
39 fh: logging.FileHandler
40 verbose_fh: logging.FileHandler
41
42 def __init__(self, logger: logging.Logger, node: str = "suite"):
43 self._logger = logger
44 # 1 means log everything, this will be used by file handlers if their level
45 # is not set
46 self._logger.setLevel(1)
47
48 self.node = node
49
50 # add handler to emit to stdout
51 sh = logging.StreamHandler()
52 sh.setFormatter(logging.Formatter(stream_fmt, date_fmt))
53 sh.setLevel(logging.INFO) # console handler default level
54
55 if SETTINGS.verbose is True:
56 sh.setLevel(logging.DEBUG)
57
58 self._logger.addHandler(sh)
59 self.sh = sh
60
61 # prepare the output folder
62 if not os.path.exists(SETTINGS.output_dir):
63 os.mkdir(SETTINGS.output_dir)
64
65 logging_path_prefix = os.path.join(SETTINGS.output_dir, node)
66
67 fh = logging.FileHandler(f"{logging_path_prefix}.log")
68 fh.setFormatter(
69 logging.Formatter(
70 fmt="%(asctime)s - %(name)s - %(levelname)s - %(message)s",
71 datefmt=date_fmt,
72 )
73 )
74
75 self._logger.addHandler(fh)
76 self.fh = fh
77
78 # This outputs EVERYTHING, intended for post-mortem debugging
79 # Also optimized for processing via AWK (awk -F '|' ...)
80 verbose_fh = logging.FileHandler(f"{logging_path_prefix}.verbose.log")
81 verbose_fh.setFormatter(
82 logging.Formatter(
83 fmt="%(asctime)s|%(name)s|%(levelname)s|%(pathname)s|%(lineno)d|"
84 "%(funcName)s|%(process)d|%(thread)d|%(threadName)s|%(message)s",
85 datefmt=date_fmt,
86 )
87 )
88

Callers 1

getLoggerFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected