1
1
import logging
2
2
import sys
3
3
4
-
5
4
LOG_LEVEL = {
6
5
"unknown" : logging .NOTSET ,
7
6
"debug" : logging .DEBUG ,
11
10
"error" : logging .ERROR ,
12
11
}
13
12
14
- class Logger :
15
13
14
+ class Logger :
16
15
logger = None
17
16
18
17
def __init__ (self , config : dict ):
@@ -25,24 +24,28 @@ def __init__(self, config: dict):
25
24
"terminal_log_level" : "info"
26
25
}
27
26
# raise Exception("No Logger configs were found!")
28
-
29
- self .__log = logging .getLogger (config ['name' ]+ "_stream" )
27
+
28
+ self .__log = logging .getLogger (config ['name' ] + "_stream" )
30
29
self .__file_log = logging .getLogger (config ['name' ])
31
30
32
31
try :
33
- file_log_level = LOG_LEVEL [logger_config ["file_log_level" ]] if not config ["debug" ] else LOG_LEVEL ["debug" ]
34
- stream_log_level = LOG_LEVEL [logger_config ["terminal_log_level" ]] if not config ["debug" ] else LOG_LEVEL ["debug" ]
32
+ file_log_level = LOG_LEVEL [logger_config ["file_log_level" ]] if not \
33
+ config ["debug" ] else LOG_LEVEL ["debug" ]
34
+ stream_log_level = LOG_LEVEL [
35
+ logger_config ["terminal_log_level" ]] if not config [
36
+ "debug" ] else LOG_LEVEL ["debug" ]
35
37
except KeyError :
36
38
file_log_level = LOG_LEVEL ["unknown" ]
37
39
stream_log_level = LOG_LEVEL ["unknown" ]
38
-
40
+
39
41
self .__log .setLevel (stream_log_level )
40
42
self .__file_log .setLevel (file_log_level )
41
43
42
44
try :
43
45
try :
44
46
if len (logger_config ['file' ]) != 0 :
45
- open (logger_config ['file' ], 'w' ).close () # testing file path
47
+ open (logger_config ['file' ],
48
+ 'w' ).close () # testing file path
46
49
file_handler = logging .FileHandler (logger_config ['file' ])
47
50
file_handler .setLevel (file_log_level )
48
51
@@ -51,32 +54,35 @@ def __init__(self, config: dict):
51
54
self .WRITE_TO_FILE = False
52
55
except FileNotFoundError :
53
56
self .WRITE_TO_FILE = False
54
-
57
+
55
58
except KeyError as e :
56
59
self .WRITE_TO_FILE = False
57
60
58
- self .log (LOG_LEVEL ["warning" ], "File Handler could not be started due to a KeyError: {0}" .format (e ))
59
-
61
+ self .log (LOG_LEVEL ["warning" ],
62
+ "File Handler could not be started due to a KeyError: {0}" .format (
63
+ e ))
64
+
60
65
stream_handler = logging .StreamHandler (sys .stdout )
61
66
stream_handler .setLevel (stream_log_level )
62
67
63
- file_formatter = logging .Formatter ("[%(asctime)s][%(name)s][%(levelname)s] %(message)s" , "%H:%M:%S" )
68
+ file_formatter = logging .Formatter (
69
+ "[%(asctime)s][%(name)s][%(levelname)s] %(message)s" , "%H:%M:%S" )
64
70
stream_formatter = logging .Formatter ("%(message)s" )
65
71
file_handler .setFormatter (file_formatter )
66
72
stream_handler .setFormatter (stream_formatter )
67
73
68
74
if self .WRITE_TO_FILE :
69
75
self .__file_log .addHandler (file_handler )
70
76
self .__log .addHandler (stream_handler )
71
-
77
+
72
78
@staticmethod
73
79
def log_to_file (log_level : int , msg : str ):
74
80
"""
75
81
Logs the given message ONLY to the log file.
76
82
"""
77
83
if Logger .log is not None :
78
84
Logger .logger .log_this_file (log_level , msg )
79
-
85
+
80
86
@staticmethod
81
87
def log (log_level : int , msg : str ): # for ease of access from outside
82
88
"""
@@ -94,7 +100,7 @@ def log_this_file(self, log_level: int, msg: str):
94
100
msg = msg .replace ("\033 [1;31m" , "" )
95
101
msg = msg .replace ("\033 [0;0m" , "" )
96
102
self .__file_log .log (log_level , msg )
97
-
103
+
98
104
def log_this (self , log_level : int , msg : str ):
99
105
self .__log .log (log_level , msg )
100
106
if self .WRITE_TO_FILE :
0 commit comments