From 8c15b0a6d1a846cc477618e326a50cd96f76380f Mon Sep 17 00:00:00 2001 From: Daniel Standish <15932138+dstandish@users.noreply.github.com> Date: Mon, 7 Nov 2022 09:39:33 -0800 Subject: [PATCH] Use log.exception where more economical than log.error (#27517) When we do log.error(..., exc_info=True), then log.exception is cleaner. --- .../providers/alibaba/cloud/log/oss_task_handler.py | 2 +- .../cncf/kubernetes/operators/kubernetes_pod.py | 2 +- airflow/stats.py | 2 +- .../cncf/kubernetes/operators/test_kubernetes_pod.py | 10 ++++------ 4 files changed, 7 insertions(+), 9 deletions(-) diff --git a/airflow/providers/alibaba/cloud/log/oss_task_handler.py b/airflow/providers/alibaba/cloud/log/oss_task_handler.py index 51d841e2f9329..c443b4e014392 100644 --- a/airflow/providers/alibaba/cloud/log/oss_task_handler.py +++ b/airflow/providers/alibaba/cloud/log/oss_task_handler.py @@ -51,7 +51,7 @@ def hook(self): try: return OSSHook(oss_conn_id=remote_conn_id) except Exception as e: - self.log.error(e, exc_info=True) + self.log.exception(e) self.log.error( 'Could not create an OSSHook with connection id "%s". ' "Please make sure that airflow[oss] is installed and " diff --git a/airflow/providers/cncf/kubernetes/operators/kubernetes_pod.py b/airflow/providers/cncf/kubernetes/operators/kubernetes_pod.py index bf9d229486985..9a34a21b10560 100644 --- a/airflow/providers/cncf/kubernetes/operators/kubernetes_pod.py +++ b/airflow/providers/cncf/kubernetes/operators/kubernetes_pod.py @@ -631,5 +631,5 @@ def __exit__(self, exctype, excinst, exctb): if caught_error: self.exception = excinst logger = logging.getLogger(__name__) - logger.error(str(excinst), exc_info=True) + logger.exception(excinst) return caught_error diff --git a/airflow/stats.py b/airflow/stats.py index 540c2b4675335..115cf94c20e6c 100644 --- a/airflow/stats.py +++ b/airflow/stats.py @@ -220,7 +220,7 @@ def wrapper(_self, stat=None, *args, **kwargs): stat = handler_stat_name_func(stat) return fn(_self, stat, *args, **kwargs) except InvalidStatsNameException: - log.error('Invalid stat name: %s.', stat, exc_info=True) + log.exception('Invalid stat name: %s.', stat) return None return cast(T, wrapper) diff --git a/tests/providers/cncf/kubernetes/operators/test_kubernetes_pod.py b/tests/providers/cncf/kubernetes/operators/test_kubernetes_pod.py index e4710d8860174..fb1bd35d95f4e 100644 --- a/tests/providers/cncf/kubernetes/operators/test_kubernetes_pod.py +++ b/tests/providers/cncf/kubernetes/operators/test_kubernetes_pod.py @@ -898,10 +898,8 @@ def test_mark_checked_if_not_deleted(self, mock_patch_already_checked, mock_dele mock_delete_pod.assert_not_called() -def test__suppress(): - with patch("logging.Logger.error") as mock_error: +def test__suppress(caplog): + with _suppress(ValueError): + raise ValueError("failure") - with _suppress(ValueError): - raise ValueError("failure") - - mock_error.assert_called_once_with("failure", exc_info=True) + assert "ValueError: failure" in caplog.text