自動的に生成されるApache Airflowログに独自のログを追加するにはどうすればよいですか?印刷ステートメントがそこにログインされないので、UIにも表示されるようにログを追加するにはどうすればよいのかと考えていました。
ロギングモジュールを使用して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)
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を使用してそれを呼び出すことをお勧めします。