Source code for warg.logging_utilities

__all__ = ["add_logging_handler_once", "SinkWriter"]

import logging
from typing import Any

_logger = logging.getLogger(__name__)


[docs] def add_logging_handler_once(_logger: logging.Logger, handler: object) -> bool: """A helper to add a handler to a logger, ensuring there are no duplicates. :param _logger: Logger that should have a handler added. :type _logger: logging.logger :param handler: Handler instance to be added. It will not be added if an instance of that Handler subclass already exists. :type handler: logging.Handler :returns: True if the logging handler was added, otherwise False. :rtype: bool """ class_name = handler.__class__.__name__ for handler in _logger.handlers: if handler.__class__.__name__ == class_name: return False _logger.addHandler(handler) return True
[docs] class SinkWriter: def write(self, text: Any) -> None: pass