:py:mod:`airflow.providers.alibaba.cloud.log.oss_task_handler`
==============================================================

.. py:module:: airflow.providers.alibaba.cloud.log.oss_task_handler


Module Contents
---------------

Classes
~~~~~~~

.. autoapisummary::

   airflow.providers.alibaba.cloud.log.oss_task_handler.OSSTaskHandler




.. py:class:: OSSTaskHandler(base_log_folder, oss_log_folder, filename_template=None)

   Bases: :py:obj:`airflow.utils.log.file_task_handler.FileTaskHandler`, :py:obj:`airflow.utils.log.logging_mixin.LoggingMixin`

   OSSTaskHandler is a python log handler that handles and reads
   task instance logs. It extends airflow FileTaskHandler and
   uploads to and reads from OSS remote storage.

   .. py:method:: hook(self)


   .. py:method:: set_context(self, ti)

      This function is used to set the context of the handler


   .. py:method:: close(self)

      Close and upload local log file to remote storage OSS.


   .. py:method:: oss_log_exists(self, remote_log_location)

      Check if remote_log_location exists in remote storage

      :param remote_log_location: log's location in remote storage
      :return: True if location exists else False


   .. py:method:: oss_read(self, remote_log_location, return_error=False)

      Returns the log found at the remote_log_location. Returns '' if no
      logs are found or there is an error.

      :param remote_log_location: the log's location in remote storage
      :param return_error: if True, returns a string error message if an
          error occurs. Otherwise returns '' when an error occurs.


   .. py:method:: oss_write(self, log, remote_log_location, append=True)

      Writes the log to the remote_log_location. Fails silently if no hook
      was created.

      :param log: the log to write to the remote_log_location
      :param remote_log_location: the log's location in remote storage
      :param append: if False, any existing log file is overwritten. If True,
          the new log is appended to any existing logs.



