utils.logger
1import logging 2from logging import Logger 3 4from config.settings import LOG_DIR, LOG_TO_CONSOLE 5 6LOG_FORMAT: str = "%(asctime)s - %(levelname)s - %(message)s" 7formatter = logging.Formatter(LOG_FORMAT) 8 9 10def setup_logger(name: str, level: int, filename: str) -> Logger: 11 """ 12 Create and configure a logger with file and optional console output. 13 14 :param name: Name of the logger. 15 :param level: Logging level (e.g., logging.INFO, logging.ERROR). 16 :param filename: Name of the log file where logs will be saved. 17 :return: Configured Logger instance. 18 """ 19 logger = logging.getLogger(name) 20 logger.setLevel(level) 21 logger.propagate = False # Prevent double logging if root logger is configured 22 23 file_handler = logging.FileHandler(LOG_DIR / filename) 24 file_handler.setFormatter(formatter) 25 logger.addHandler(file_handler) 26 27 if LOG_TO_CONSOLE: 28 stream_handler = logging.StreamHandler() 29 stream_handler.setFormatter(formatter) 30 logger.addHandler(stream_handler) 31 32 return logger 33 34 35info_logger: Logger = setup_logger("info_logger", logging.INFO, "info.log") 36error_logger: Logger = setup_logger("error_logger", logging.ERROR, "error.log")
LOG_FORMAT: str =
'%(asctime)s - %(levelname)s - %(message)s'
formatter =
<logging.Formatter object>
def
setup_logger(name: str, level: int, filename: str) -> logging.Logger:
11def setup_logger(name: str, level: int, filename: str) -> Logger: 12 """ 13 Create and configure a logger with file and optional console output. 14 15 :param name: Name of the logger. 16 :param level: Logging level (e.g., logging.INFO, logging.ERROR). 17 :param filename: Name of the log file where logs will be saved. 18 :return: Configured Logger instance. 19 """ 20 logger = logging.getLogger(name) 21 logger.setLevel(level) 22 logger.propagate = False # Prevent double logging if root logger is configured 23 24 file_handler = logging.FileHandler(LOG_DIR / filename) 25 file_handler.setFormatter(formatter) 26 logger.addHandler(file_handler) 27 28 if LOG_TO_CONSOLE: 29 stream_handler = logging.StreamHandler() 30 stream_handler.setFormatter(formatter) 31 logger.addHandler(stream_handler) 32 33 return logger
Create and configure a logger with file and optional console output.
Parameters
- name: Name of the logger.
- level: Logging level (e.g., logging.INFO, logging.ERROR).
- filename: Name of the log file where logs will be saved.
Returns
Configured Logger instance.
info_logger: logging.Logger =
<Logger info_logger (INFO)>
error_logger: logging.Logger =
<Logger error_logger (ERROR)>