Source code for yfpy.logger

# -*- coding: utf-8 -*-
"""YFPY module for configuring and formatting the custom logger.
"""
__author__ = "Wren J. R. (uberfastman)"
__email__ = "uberfastman@uberfastman.dev"

from logging import getLogger, Logger, Formatter, StreamHandler, INFO


[docs]def get_logger(name: str, level: int = INFO) -> Logger: """Get custom YFPY logger object. Args: name (str): The module name for the logger. level (int): The log level for the logger. Default level set to INFO. Returns: Logger: A Python Logger object with custom configuration and formatting. """ logger = getLogger(name) if len(logger.handlers) > 0: logger.handlers = [] if level: logger.setLevel(level) sh = StreamHandler() if level: sh.setLevel(level) formatter = Formatter( fmt="%(asctime)s.%(msecs)03d - %(levelname)s - %(filename)s - %(name)s:%(lineno)d - %(message)s", datefmt="%Y-%m-%d %H:%M:%S" ) sh.setFormatter(formatter) logger.addHandler(sh) return logger