Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add Traceback in LogRecord in
JSONFormatter
(#15414)
Currently traceback is not included when ``JSONFormatter`` is used. (`[logging] json_format = True`) . However, the default Handler includes the Stacktrace. To currently include the trace we need to add `json_fields = asctime, filename, lineno, levelname, message, exc_text`. This is a bigger problem when using Elasticsearch Logging with: ```ini [elasticsearch] write_stdout = True json_format = True json_fields = asctime, filename, lineno, levelname, message, exc_text [logging] log_format = [%(asctime)s] {%(filename)s:%(lineno)d} %(levelname)s - %(message)s - %(exc_text)s ``` Running the following DAG with the above config won't show trace: ```python from airflow import DAG from airflow.operators.python import PythonOperator from airflow.utils.dates import days_ago with DAG( dag_id='example_error', schedule_interval=None, start_date=days_ago(2), ) as dag: def raise_error(**kwargs): raise Exception("I am an exception from task logs") task_1 = PythonOperator( task_id='task_1', python_callable=raise_error, ) ``` Before: ``` [2021-04-17 00:11:00,152] {taskinstance.py:877} INFO - Dependencies all met for <TaskInstance: example_python_operator.print_the_context 2021-04-17T00:10:57.110189+00:00 [queued]> ... ... [2021-04-17 00:11:00,298] {taskinstance.py:1482} ERROR - Task failed with exception [2021-04-17 00:11:00,300] {taskinstance.py:1532} INFO - Marking task as FAILED. dag_id=example_python_operator, task_id=print_the_context, execution_date=20210417T001057, start_date=20210417T001100, end_date=20210417T001100 [2021-04-17 00:11:00,325] {local_task_job.py:146} INFO - Task exited with return code 1 ``` After: ``` [2021-04-17 00:11:00,152] {taskinstance.py:877} INFO - Dependencies all met for <TaskInstance: example_python_operator.print_the_context 2021-04-17T00:10:57.110189+00:00 [queued]> ... ... [2021-04-17 00:11:00,298] {taskinstance.py:1482} ERROR - Task failed with exception Traceback (most recent call last): File "/usr/local/lib/python3.7/site-packages/airflow/models/taskinstance.py", line 1138, in _run_raw_task self._prepare_and_execute_task_with_callbacks(context, task) File "/usr/local/lib/python3.7/site-packages/airflow/models/taskinstance.py", line 1311, in _prepare_and_execute_task_with_callbacks result = self._execute_task(context, task_copy) File "/usr/local/lib/python3.7/site-packages/airflow/models/taskinstance.py", line 1341, in _execute_task result = task_copy.execute(context=context) File "/usr/local/lib/python3.7/site-packages/airflow/operators/python.py", line 117, in execute return_value = self.execute_callable() File "/usr/local/lib/python3.7/site-packages/airflow/operators/python.py", line 128, in execute_callable return self.python_callable(*self.op_args, **self.op_kwargs) File "/usr/local/airflow/dags/eg-2.py", line 25, in print_context raise Exception("I am an exception from task logs") Exception: I am an exception from task logs [2021-04-17 00:11:00,300] {taskinstance.py:1532} INFO - Marking task as FAILED. dag_id=example_python_operator, task_id=print_the_context, execution_date=20210417T001057, start_date=20210417T001100, end_date=20210417T001100 [2021-04-17 00:11:00,325] {local_task_job.py:146} INFO - Task exited with return code 1 ``` (cherry picked from commit 99ec208)
- Loading branch information