web-dev-qa-db-ja.com

Airflowログへのログの追加

自動的に生成されるApache Airflowログに独自のログを追加するにはどうすればよいですか?印刷ステートメントがそこにログインされないので、UIにも表示されるようにログを追加するにはどうすればよいのかと考えていました。

12
user3542930

ロギングモジュールを使用してAirflowへの設定を信頼することで、これを回避できると思います。

何かのようなもの:

import ...

dag = ...

def print_params_fn(**kwargs):
    import logging
    logging.info(kwargs)
    return None

print_params = PythonOperator(task_id="print_params",
                              python_callable=print_params_fn,
                              provide_context=True,
                              dag=dag)
15
Ivan Gozali

PythonOperator: https://github.com/Apache/incubator-airflow/blob/master/airflow/operators/python_operator.py#L80-L81 を見ると、方法がないように見えますpython callableからSTDOUT/STDERRをエアフローログに記録します。

ただし、BashOperatorを見る場合: https://github.com/Apache/incubator-airflow/blob/master/airflow/operators/bash_operator.py#L79-L94 、STDOUT/STDERRそこからエアフローログと一緒に記録されます。したがって、ログが重要な場合は、別のファイルにpythonコードを追加し、BashOperatorを使用してそれを呼び出すことをお勧めします。

3
Vineet Goel