33 lines
856 B
Python
33 lines
856 B
Python
import sys
|
|
import logging
|
|
from logging import Logger
|
|
|
|
|
|
def get_logger(name: str) -> Logger:
|
|
"""
|
|
Get a logger instance.
|
|
:param name: name of the logger
|
|
:return: logger instance
|
|
"""
|
|
logger = logging.getLogger(name)
|
|
logger.setLevel(logging.INFO)
|
|
|
|
# create a file handler
|
|
file_handler = logging.FileHandler(f'{name}.log')
|
|
file_handler.setLevel(logging.INFO)
|
|
|
|
# create stdout handler
|
|
stdout_handler = logging.StreamHandler(sys.stdout)
|
|
stdout_handler.setLevel(logging.INFO)
|
|
|
|
# create a logging format
|
|
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
|
|
file_handler.setFormatter(formatter)
|
|
stdout_handler.setFormatter(formatter)
|
|
|
|
# add the handlers to the logger
|
|
logger.addHandler(file_handler)
|
|
logger.addHandler(stdout_handler)
|
|
|
|
return logger
|