afshin-dini's picture
Clean the code
f88c1d2
"""Logger initialization"""
import logging
import logging.config
from typing import Any, Optional
def config_logger(loglevel: int, log_file: Optional[str] = None) -> Any:
"""Initialize a custom logger"""
handlers = {
"console": {
"class": "logging.StreamHandler",
"formatter": "standard",
},
}
if log_file:
handlers["file"] = {
"class": "logging.FileHandler",
"formatter": "standard",
"filename": log_file,
"mode": "a",
}
default_logging_config = {
"version": 1,
"disable_existing_loggers": False,
"formatters": {
"standard": {
"format": "%(asctime)s - [%(levelname)s] [%(name)s.%(funcName)s:%(lineno)d (%(process)d)] | %(message)s",
"datefmt": "%Y-%m-%d %H:%M:%S",
},
},
"handlers": handlers,
"root": {
"handlers": list(handlers.keys()),
"level": loglevel,
},
}
logging.config.dictConfig(default_logging_config)