https://github.com/apache/airflow/blob/main/airflow/cli/commands/task_command.py#L145
"""Return the URL for log visualization in the external service."""
    @property
    @abc.abstractmethod
    def supports_external_link(self) -> bool:
        """Return whether handler is able to support external links."""
class StreamLogWriter(IOBase, IO[str]):  
    """
    Allows to redirect stdout and stderr to logger.
    :param log: The log level method to write to, ie. log.debug, log.warning
    """
    encoding: None = None
    def __init__(self, logger, level):
        self.logger = logger
        self.level = level
        self._buffer = ""
    def close(self):
        """
        Provide close method, for compatibility with the io.IOBase interface.
        This is a no-op method.
        """
    @property
    def closed(self):
        """
        Return False to indicate that the stream is not closed.
        Streams will be open for the duration of Airflow's lifecycle.
        For compatibility with the io.IOBase interface.
        """
        return False
    def _propagate_log(self, message):