6
6
7
7
from utils .settings_handler import settings
8
8
9
+ LOG_FORMAT = "%(asctime)s %(levelname)s: %(message)s"
10
+
11
+
12
+ class ColoredFormatter (logging .Formatter ):
13
+ """
14
+ Apply only to the console handler.
15
+ """
16
+
17
+ green = "\u001b [32m"
18
+ cyan = "\u001b [36m"
19
+ reset = "\u001b [0m"
20
+
21
+ def format (self , record ):
22
+ frmt = LOG_FORMAT
23
+ if record .getMessage ().startswith ("id=" ):
24
+ frmt = f"{ ColoredFormatter .green } { frmt } { ColoredFormatter .reset } "
25
+ if record .getMessage ().startswith ("msg=" ):
26
+ frmt = f"{ ColoredFormatter .cyan } { frmt } { ColoredFormatter .reset } "
27
+ formatter = logging .Formatter (frmt )
28
+ return formatter .format (record )
29
+
9
30
10
31
def set_up_logging (save_to_file = True ):
11
32
"""
@@ -20,7 +41,7 @@ def set_up_logging(save_to_file=True):
20
41
21
42
ch = logging .StreamHandler ()
22
43
ch .setLevel (logging .DEBUG )
23
- formatter = logging . Formatter ( "%(asctime)s %(levelname)s: %(message)s" , datefmt = "%Y-%m-%d %H:%M:%S" )
44
+ formatter = ColoredFormatter ( LOG_FORMAT , datefmt = "%Y-%m-%d %H:%M:%S" )
24
45
ch .setFormatter (formatter )
25
46
logger .addHandler (ch )
26
47
@@ -33,6 +54,9 @@ def set_up_logging(save_to_file=True):
33
54
log_prefix = hashlib .sha1 (settings .USER_ID .encode ("utf-8" )).hexdigest ()[:5 ]
34
55
35
56
if save_to_file :
57
+ formatter = logging .Formatter (LOG_FORMAT , datefmt = "%Y-%m-%d %H:%M:%S" )
58
+ ch .setFormatter (formatter )
59
+
36
60
# we need it to distinguish different bots logs (if they were run in the same time)
37
61
file_name = "{}_{}.log" .format (log_prefix , datetime .datetime .now ().strftime ("%Y-%m-%d_%H_%M_%S" ))
38
62
0 commit comments