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.

class Unclogger(logger: WrappedLogger, processors: Iterable[Processor], context: Context)

Bases : structlog.stdlib.BoundLogger

Custom logger class.

Attributes

  • name : str attr:logging.Logger.name

  • level : int attr:logging.Logger.level

  • parent : Any attr:logging.Logger.parent

  • propagate : bool attr:logging.Logger.propagate

  • handlers : Any attr:logging.Logger.handlers

  • disabled : int attr:logging.Logger.disabled

  • config : SimpleNamespace Simple configuration object for custom logger functionality.

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.

context_clear(*args: str)None

Remove variables from context.

Parameters

  • args : str Keys for context variables to clear. If absent, all context variables are cleared.

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.