Skip to content

Logger module

Detailed API reference for the wingpy.logger module, which provides functionality for logging messages, exceptions and events. You will notice that every client in wingpy uses this module under the hood to log important events and exceptions. But it's very easy to customize and use it in your own automation scripts as well. We created a few easy helper functions to get you started quickly.

wingpy.logger

logger

logger = Logger(
    core=Core(),
    exception=None,
    depth=0,
    record=False,
    lazy=False,
    colors=False,
    raw=False,
    capture=True,
    patchers=[],
    extra={},
)

log_exception

log_exception(
    exception: Exception,
    severity: Literal[
        "TRACE",
        "DEBUG",
        "INFO",
        "SUCCESS",
        "WARNING",
        "ERROR",
        "CRITICAL",
    ] = "ERROR",
) -> None

Log the exception message using the wingpy logger.

Parameters:

Name Type Description Default
severity str

The severity level to log the message at. Default is 'ERROR'.

'ERROR'
Source code in src/wingpy/logger.py
def log_exception(
    exception: Exception,
    severity: Literal[
        "TRACE", "DEBUG", "INFO", "SUCCESS", "WARNING", "ERROR", "CRITICAL"
    ] = "ERROR",
) -> None:
    """
    Log the exception message using the wingpy logger.

    Parameters
    ----------
    severity : str, optional
        The severity level to log the message at. Default is 'ERROR'.
    """
    if severity.upper() not in (
        "TRACE",
        "DEBUG",
        "INFO",
        "SUCCESS",
        "WARNING",
        "ERROR",
        "CRITICAL",
    ):
        logger.error(
            f"Invalid severity level '{severity}' provided. Defaulting to 'ERROR'"
        )
        severity = "ERROR"

    logger.log(
        severity.upper(), exception.__class__.__name__ + ": " + exception.__str__()
    )

log_to_file

log_to_file(level: str, filename: str)
Source code in src/wingpy/logger.py
def log_to_file(level: str, filename: str):
    sink = open(file=filename, mode="a")
    set_logging_level(level, sink=sink)

set_logging_level

set_logging_level(level: str, sink=_sys.stderr)
Source code in src/wingpy/logger.py
def set_logging_level(level: str, sink=_sys.stderr):
    logger.remove()
    logger.add(sink, level=level)