cpdbench.utils.Logger

 1# Was wird geloggt?
 2# DEBUG
 3# alle Schritte => Methoden-Signaturen, Erstellung von Tasks, Beginnen/Ende von Validierungen, Task-Erstellungen,
 4# INFO
 5# Start und Ende von Verarbeitungen => Testrun, Task-Ausführungen + Performance
 6# WARNING
 7# (evtl. unterdrückte Validation-Fehler)?
 8# ERROR
 9# Exceptions in Tasks, Validation-Fehler
10# CRITICAL
11# Exceptions, die die Testbench beendet haben
12
13
14# Logging-Mechanismus
15# - nicht auf root => https://docs.python.org/3/howto/logging.html#logging-levels
16# - z.B. tcpd-bench:testrun-name:dataset-fetch
17# - In File => Exceptions/Crits auf Konsole
18
19# STDOUT + cpdbench-result.json => Result-JSON
20# cpdbench-log.txt => alle Log-Messages
21# STDERR => ERROR + CRITICAL
22
23import logging
24from cpdbench.utils import BenchConfig
25
26_app_logger = None
27
28
29def init_logger():
30    global _app_logger
31    _app_logger = logging.Logger('cpdbench')
32    _app_logger.setLevel(logging.DEBUG)
33    console_handler = logging.StreamHandler()
34    general_formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
35    console_handler.setFormatter(general_formatter)
36    console_handler.setLevel(BenchConfig.logging_console_level)
37    _app_logger.addHandler(console_handler)
38
39   # open('cpdbench-log.txt', 'w').close()
40    file_handler = logging.FileHandler(BenchConfig.logging_file_name, 'w')
41    file_handler.setFormatter(general_formatter)
42    file_handler.setLevel(BenchConfig.logging_level)
43    _app_logger.addHandler(file_handler)
44    return _app_logger
45
46
47def get_application_logger() -> logging.Logger:
48    if _app_logger is None:
49        return init_logger()
50    return _app_logger
def init_logger():
30def init_logger():
31    global _app_logger
32    _app_logger = logging.Logger('cpdbench')
33    _app_logger.setLevel(logging.DEBUG)
34    console_handler = logging.StreamHandler()
35    general_formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
36    console_handler.setFormatter(general_formatter)
37    console_handler.setLevel(BenchConfig.logging_console_level)
38    _app_logger.addHandler(console_handler)
39
40   # open('cpdbench-log.txt', 'w').close()
41    file_handler = logging.FileHandler(BenchConfig.logging_file_name, 'w')
42    file_handler.setFormatter(general_formatter)
43    file_handler.setLevel(BenchConfig.logging_level)
44    _app_logger.addHandler(file_handler)
45    return _app_logger
def get_application_logger() -> logging.Logger:
48def get_application_logger() -> logging.Logger:
49    if _app_logger is None:
50        return init_logger()
51    return _app_logger