-
-
Notifications
You must be signed in to change notification settings - Fork 51
/
Copy pathlog.py
41 lines (31 loc) · 1.75 KB
/
log.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
"""Custom logger configuration."""
from sys import stdout
from loguru import logger as custom_logger
def log_formatter(record: dict) -> str:
"""
Formatter for log records.
:param dict record: Log object containing log metadata & message.
:returns: str
"""
if record["level"].name == "TRACE":
return "<fg #70acde>{time:MM-DD-YYYY HH:mm:ss}</fg #70acde> | <fg #cfe2f3>{level}</fg #cfe2f3>: <light-white>{message}</light-white>\n"
elif record["level"].name == "INFO":
return "<fg #70acde>{time:MM-DD-YYYY HH:mm:ss}</fg #70acde> | <fg #9cbfdd>{level}</fg #9cbfdd>: <light-white>{message}</light-white>\n"
elif record["level"].name == "DEBUG":
return "<fg #70acde>{time:MM-DD-YYYY HH:mm:ss}</fg #70acde> | <fg #8598ea>{level}</fg #8598ea>: <light-white>{message}</light-white>\n"
elif record["level"].name == "WARNING":
return "<fg #70acde>{time:MM-DD-YYYY HH:mm:ss}</fg #70acde> | <fg #dcad5a>{level}</fg #dcad5a>: <light-white>{message}</light-white>\n"
elif record["level"].name == "SUCCESS":
return "<fg #70acde>{time:MM-DD-YYYY HH:mm:ss}</fg #70acde> | <fg #3dd08d>{level}</fg #3dd08d>: <light-white>{message}</light-white>\n"
elif record["level"].name == "ERROR":
return "<fg #70acde>{time:MM-DD-YYYY HH:mm:ss}</fg #70acde> | <fg #ae2c2c>{level}</fg #ae2c2c>: <light-white>{message}</light-white>\n"
return "<fg #70acde>{time:MM-DD-YYYY HH:mm:ss}</fg #70acde> | <fg #b3cfe7>{level}</fg #b3cfe7>: <light-white>{message}</light-white>\n"
def create_logger() -> custom_logger:
"""
Create custom logger.
:returns: custom_logger
"""
custom_logger.remove()
custom_logger.add(stdout, colorize=True, format=log_formatter)
return custom_logger
LOGGER = create_logger()