Skip to content

setup_daq_ers_logger

daqpytools.logging.logger.setup_daq_ers_logger(logger, ers_kafka_session, ers_app_name=None)

Configure logger handlers from ERS environment-derived configuration.

Parameters:

Name Type Description Default
logger Logger

Logger to configure.

required
ers_kafka_session str

ERS session name used for protobufstream handler.

required
ers_app_name str | None

Optional ERS application name for kafka handler.

None

Returns:

Type Description
None

None

Source code in daqpytools/logging/logger.py
def setup_daq_ers_logger(
    logger: logging.Logger,
    ers_kafka_session: str,
    ers_app_name : str | None = None
) -> None:
    """Configure logger handlers from ERS environment-derived configuration.

    Args:
        logger (logging.Logger): Logger to configure.
        ers_kafka_session (str): ERS session name used for protobufstream handler.
        ers_app_name (str | None): Optional ERS application name for kafka handler.

    Returns:
        None
    """
    oks_conf = LogHandlerConf._get_oks_conf()

    protobuf_configs = {
        handler_conf.protobufconf
        for handler_conf in oks_conf.values()
        if handler_conf.protobufconf is not None
    }

    if len(protobuf_configs) > 1:
        err_msg = (
            "Multiple protobufstream(url:port) configurations are not supported "
            "in Python ERS logger setup"
        )
        raise ValueError(err_msg)

    protobuf_config = next(iter(protobuf_configs), None)
    kafka_address = protobuf_config.get_string() if protobuf_config else None

    all_handlers = {
        handler
        for handler_conf in oks_conf.values()
        for handler in handler_conf.handlers
        if handler is not None
    }

    add_ers_kwargs = {
        "session_name": ers_kafka_session,
        "ers_app_name": ers_app_name,
    }
    if kafka_address is not None:
        add_ers_kwargs["address"] = kafka_address

    add_handlers_from_types(
        logger,
        all_handlers,
        use_parent_handlers=True,
        fallback_handlers={HandlerType.Unknown},
        **add_ers_kwargs,
    )