blob: 140fa8f742a9cc0ad071623d42b1c70a99ad3f49 (
plain)
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
|
import logging
import os
from enum import Enum
class LogLevel(Enum):
DEBUG = logging.DEBUG
INFO = logging.INFO
WARNING = logging.WARNING
ERROR = logging.ERROR
CRITICAL = logging.CRITICAL
def get_logger(name: str, level: LogLevel = LogLevel.INFO) -> logging.Logger:
if isinstance(level, str):
try:
level = LogLevel[level.upper()]
except KeyError:
raise ValueError(
f"Invalid log level '{level}'. Choose from: {', '.join(l.name for l in LogLevel)}"
)
logger = logging.getLogger(name)
if logger.hasHandlers():
logger.handlers.clear()
handler = logging.StreamHandler()
logger.setLevel(level.value)
formatting = logging.Formatter(
"[%(asctime)s] - %(levelname)s::%(name)s - %(message)s"
)
handler.setFormatter(formatting)
logger.addHandler(handler)
return logger
|