2016-10-19 15 views
4

自動的に生成されるApache Airflowログに自分のログを追加するにはどうすればよいですか?どんな印刷ステートメントもそこにログインすることはありません。そのため、UIにもログが表示されるように、ログを追加する方法が不思議でした。エアフローログへのログの追加

答えて

4

ロギングモジュールを使用し、エアフローの設定を信頼することで、この問題を回避できると思います。

のような何か:

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) 
3

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を使用して呼び出してください。

関連する問題