def _configure_loggers(self):
        # Create a custom logging configuration
        logging_config = copy.deepcopy(DEFAULT_LOGGING_CONFIG)
        logging_config['handlers']['task']['base_log_folder'] = self.log_dir

        logging_config['handlers']['task'][
            'filename_template'] = '{{ ti.dag_id }}/{{ ti.task_id }}/{{ ts | replace(":", ".") }}/{{ try_number }}.log'

        # Write the custom logging configuration to a file
        self.settings_folder = tempfile.mkdtemp()
        settings_file = os.path.join(self.settings_folder,
                                     "airflow_local_settings.py")
        new_logging_file = "LOGGING_CONFIG = {}".format(logging_config)
        with open(settings_file, 'w') as handle:
            handle.writelines(new_logging_file)
        sys.path.append(self.settings_folder)

        with conf_vars({
            ('logging', 'logging_config_class'):
                'airflow_local_settings.LOGGING_CONFIG',
            ("api", "auth_backend"):
                "tests.test_utils.remote_user_api_auth_backend",
        }):
            self.app = app.create_app(testing=True)
            self.client = self.app.test_client()
            settings.configure_logging()
    def assert_remote_logs(self, expected_message, ti):
        with provide_gcp_context(GCP_STACKDDRIVER), conf_vars({
            ('logging', 'remote_logging'): 'True',
            ('logging', 'remote_base_log_folder'): f"stackdriver://{self.log_name}",
        }):
            from airflow.config_templates import airflow_local_settings
            importlib.reload(airflow_local_settings)
            settings.configure_logging()

            task_log_reader = TaskLogReader()
            logs = "\n".join(task_log_reader.read_log_stream(ti, try_number=None, metadata={}))
            self.assertIn(expected_message, logs)
    def assert_remote_logs(self, expected_message, ti):
        with provide_gcp_context(GCP_GCS_KEY), conf_vars({
            ('logging', 'remote_logging'): 'True',
            ('logging', 'remote_base_log_folder'): f"gs://{self.bucket_name}/path/to/logs",
            ('logging', 'remote_log_conn_id'): "google_cloud_default",
        }):
            from airflow.config_templates import airflow_local_settings
            importlib.reload(airflow_local_settings)
            settings.configure_logging()

            task_log_reader = TaskLogReader()
            logs = "\n".join(task_log_reader.read_log_stream(ti, try_number=None, metadata={}))
            self.assertIn(expected_message, logs)
Beispiel #4
0
 def _configure_loggers(self):
     logging_config = copy.deepcopy(DEFAULT_LOGGING_CONFIG)
     logging_config["handlers"]["task"]["base_log_folder"] = self.log_dir
     logging_config["handlers"]["task"][
         "filename_template"
     ] = "{{ ti.dag_id }}/{{ ti.task_id }}/{{ ts | replace(':', '.') }}/{{ try_number }}.log"
     settings_file = os.path.join(self.settings_folder, "airflow_local_settings.py")
     with open(settings_file, "w") as handle:
         new_logging_file = f"LOGGING_CONFIG = {logging_config}"
         handle.writelines(new_logging_file)
     sys.path.append(self.settings_folder)
     with conf_vars({("logging", "logging_config_class"): "airflow_local_settings.LOGGING_CONFIG"}):
         settings.configure_logging()
Beispiel #5
0
    def test(self):
        self.logger.setLevel(logging.DEBUG)
        self.logger.addHandler(self.handler)

        self.assertEqual(self.logger.handlers, [self.handler])

        settings.configure_logging()

        # Make sure our log settings are preserved.
        self.assertEqual(self.logger.level, logging.DEBUG)
        self.assertIn(self.handler, self.logger.handlers)

        # Make sure default StreamHandler got added.
        self.assertIn(settings.handler, self.logger.handlers)
    def test(self):
        self.logger.setLevel(logging.DEBUG)
        self.logger.addHandler(self.handler)

        self.assertEqual(self.logger.handlers, [self.handler])

        settings.configure_logging()

        # Make sure our log settings are preserved.
        self.assertEqual(self.logger.level, logging.DEBUG)
        self.assertIn(self.handler, self.logger.handlers)

        # Make sure default StreamHandler got added.
        self.assertIn(settings.handler, self.logger.handlers)
Beispiel #7
0
    def tearDown(self) -> None:
        from airflow.config_templates import airflow_local_settings

        importlib.reload(airflow_local_settings)
        settings.configure_logging()
        clear_db_runs()