Skip to content

Logger (API)

Thin wrapper around Python’s logging providing simple info, warning, and error methods.

Overview

  • Class: wrapped_logging(debug: bool)
  • Methods:
  • log_info(message: str)
  • log_warning(message: str)
  • log_error(message: str)
  • Default level is INFO. When debug=True, a local debug.log file is written (development only).

Quick Start

from logger import wrapped_logging

logger = wrapped_logging(False)
logger.log_info("Starting run")
logger.log_warning("No verified emails for user")
logger.log_error("Failed to write S3 object")

Reference

A python class which wraps the logging module to make testing easier.

wrapped_logging

Source code in src/logger.py
class wrapped_logging:
    def __init__(self, debug: bool) -> None:
        """Initialises the logger.
        Args:
            debug (bool): Whether to output debug logs.
        """
        self.logger = logging.getLogger(__name__)
        self.logger.setLevel(logging.INFO)

        if debug:
            logging.basicConfig(filename="debug.log", filemode="w")

    def log_info(self, message: str) -> None:
        """Logs an info message to the logger.
        Args:
            message (str): The message to log.
        """
        self.logger.info(message)

    def log_error(self, message: str) -> None:
        """Logs an error message to the logger.
        Args:
            message (str): The message to log.
        """
        self.logger.error(message)

    def log_warning(self, message: str) -> None:
        """Logs a warning message to the logger.
        Args:
            message (str): The message to log.
        """
        self.logger.warning(message)

__init__(debug)

Initialises the logger. Args: debug (bool): Whether to output debug logs.

Source code in src/logger.py
def __init__(self, debug: bool) -> None:
    """Initialises the logger.
    Args:
        debug (bool): Whether to output debug logs.
    """
    self.logger = logging.getLogger(__name__)
    self.logger.setLevel(logging.INFO)

    if debug:
        logging.basicConfig(filename="debug.log", filemode="w")

log_error(message)

Logs an error message to the logger. Args: message (str): The message to log.

Source code in src/logger.py
def log_error(self, message: str) -> None:
    """Logs an error message to the logger.
    Args:
        message (str): The message to log.
    """
    self.logger.error(message)

log_info(message)

Logs an info message to the logger. Args: message (str): The message to log.

Source code in src/logger.py
def log_info(self, message: str) -> None:
    """Logs an info message to the logger.
    Args:
        message (str): The message to log.
    """
    self.logger.info(message)

log_warning(message)

Logs a warning message to the logger. Args: message (str): The message to log.

Source code in src/logger.py
def log_warning(self, message: str) -> None:
    """Logs a warning message to the logger.
    Args:
        message (str): The message to log.
    """
    self.logger.warning(message)