【发布时间】:2020-08-28 15:42:06
【问题描述】:
我正在使用 Apache Airflow 1.10.9(基于 puckel/docker-airflow docker 映像)通过 BashOperator 在 DAG 中运行多个 Python 脚本。日志当前写入/usr/local/airflow/logs。
是否可以将 Airflow 配置为
-
也将日志写入另一个目录,例如
/home/foo/logs - 日志应该只包含来自 python 脚本的标准输出
-
日志应按以下目录/文件名格式存储:
/home/foo/logs/[execution-date]-[dag-id]-[task-id].log -
如果可能,重试应附加到相同的
.log文件中。否则,我们可以有命名约定:/home/foo/logs/[execution-date]-[dag-id]-[task-id]-[retry-number].log
谢谢大家!
DAG 示例
from airflow import DAG
from airflow.operators.bash_operator import BashOperator
default_args = { ... }
dag = DAG(
'mydag',
default_args=default_args,
schedule_interval='*/10 * * * *',
)
# Log to /home/foo/logs/2020-05-12-mydag-hello_world.log
t1 = BashOperator(
task_id='hello_world',
bash_command='/path/to/env/bin/python /path/to/scripts/hello_world.py',
dag=dag,
)
# Log to /home/foo/logs/2020-05-12-mydag-hey_there.log
t2 = BashOperator(
task_id='hey_there',
bash_command='/path/to/env/bin/python /path/to/scripts/hey_there.py',
dag=dag,
)
t1 >> t2
【问题讨论】:
标签: python python-3.x logging airflow