Skip to content

Logging

Injectable stdlib logging for dapr-agents-oas-adapter.

get_logger

Get the current logger instance.

get_logger

get_logger() -> logging.Logger

Get the current logger instance.

Returns:

Type Description
Logger

The active logging.Logger.

Source code in src/dapr_agents_oas_adapter/logging.py
def get_logger() -> logging.Logger:
    """Get the current logger instance.

    Returns:
        The active ``logging.Logger``.
    """
    return _default_logger

set_logger

Inject a custom logger to replace the default.

set_logger

set_logger(logger: Logger) -> None

Inject a custom logger to replace the default.

Call this before creating DaprAgentSpecLoader, DaprAgentSpecExporter, or AsyncDaprAgentSpecLoader instances, because those classes capture the logger at construction time via get_logger(). Objects created before set_logger() is called will continue using the previous logger.

Parameters:

Name Type Description Default
logger Logger

A logging.Logger instance to use for all library logging.

required
Source code in src/dapr_agents_oas_adapter/logging.py
def set_logger(logger: logging.Logger) -> None:
    """Inject a custom logger to replace the default.

    Call this **before** creating ``DaprAgentSpecLoader``,
    ``DaprAgentSpecExporter``, or ``AsyncDaprAgentSpecLoader`` instances,
    because those classes capture the logger at construction time via
    ``get_logger()``. Objects created before ``set_logger()`` is called
    will continue using the previous logger.

    Args:
        logger: A ``logging.Logger`` instance to use for all library logging.
    """
    global _default_logger
    _default_logger = logger

Usage Examples

Default Logger

from dapr_agents_oas_adapter import get_logger

logger = get_logger()
logger.info("Processing started")
logger.error("Processing failed")

Custom Logger

import logging
from dapr_agents_oas_adapter import set_logger, get_logger

# Create and configure a custom logger
custom = logging.getLogger("my_app.adapter")
custom.setLevel(logging.DEBUG)

# Inject before creating loader/exporter instances
set_logger(custom)

# All library components now use the custom logger
logger = get_logger()
logger.debug("Using custom logger")

Integrating with structlog

import structlog
from dapr_agents_oas_adapter import set_logger

# structlog wraps stdlib loggers, so this works directly
set_logger(structlog.get_logger("dapr_agents_oas_adapter"))