"""Logger module for the navigator package."""
import logging
import os
import sys
if "LOGLEVEL" in os.environ and os.environ["LOGLEVEL"] in logging._nameToLevel:
loglevel = logging._nameToLevel[os.environ["LOGLEVEL"]]
else:
loglevel = logging.INFO
def get_logger(name: str, dummy: bool = False) -> logging.Logger:
"""Makes a logger for the request module.
Args:
name (str): The name of the logger
dummy (bool, optional): Dummy logger that logs to NullHandler. Defaults to False.
Returns:
logging.Logger: The logger
"""
logger = logging.getLogger(name)
logger.handlers = [] # Remove any existing handlers
# Set format for logs
formatter = logging.Formatter(
"%(asctime)s - %(name)s - %(levelname)s - %(message)s"
)
if dummy:
# Create a dummy logger that logs to a NullHandler
null_handler = logging.NullHandler()
logger.addHandler(null_handler)
else:
# Create a handler to print logs to stdout
stdout_handler = logging.StreamHandler(sys.stdout)
stdout_handler.setFormatter(formatter)
logger.addHandler(stdout_handler)
# Set log level
logger.setLevel(loglevel)
return logger