Skip to content

API Reference

Logger

get_logger(name: str | None = None, level: int | None = None)Unclogger

Retrieve a logger instance.

from unclogger import get_logger
unclogger = get_logger("unclogger")
unclogger.info("message")
{"event": "message", "logger": "logger", "level": "info", "timestamp": "..."}

The returned logger supports the standard Python logging protocol.

Parameters

  • name : str | None Optional name for the logger.

  • level : int | None Optional logging level.

context_bind(**kwargs: Any)None

Inserts data into the global logging context.

Parameters

  • kwargs : Any Any keyword argument will be inserted into the global context.

Global Log Level Configuration

Example
>>> from unclogger import get_logger, set_level
>>> logger = get_logger("test logger")
>>> logger.info("bar")
{
    "event": "bar",
    "logger": "test logger",
    "level": "info",
    "timestamp": "2021-02-18T21:59:40.102272Z"
}
>>> logger.debug("bar")
>>> set_level("debug")
>>> logger.debug("bar")
{
    "event": "bar",
    "logger": "test logger",
    "level": "debug",
    "timestamp": "2021-02-18T22:00:09.147106Z"
}
>>> set_level("warning")
>>> logger.info("bar")
>>>

set_level(level: int | str = _std_logging.INFO)None

Sets the global logging level.

The level can be passed as the level name or number.

Parameters

  • level : int | str The level name or number.

Raises

  • ValueError if the level is not one of standard logging levels.

  • ValueError

Custom Processors

add_processors(*args: Callable[[WrappedLogger, str, EventDict], EventDict])None

Add a custom processor to the logging configuration.

Each processor will be executed in the unclogger context. See Structlog documentation for more information on clean_data.

Parameters

  • args : Callable[[WrappedLogger, str, EventDict], EventDict] One or more callables conforming to the Structlog processor signature.