2016-10-19 3 views
4

자동으로 생성되는 Apache Airflow 로그에 내 로그를 추가하려면 어떻게합니까? 어떤 인쇄 진술도 거기에 로그인하지 않을거야, 그래서 내가 UI에뿐만 아니라 나타납니다 있도록 내 로그를 추가 할 수 있습니다 궁금 해서요?기류 로그에 로그 추가

답변

4

로깅 모듈을 사용하고 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) 
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이 기류 로그와 함께 기록됩니다. 로그가 중요하다면 파이썬 코드를 별도의 파일에 추가하고 BashOperator를 사용하여 호출하는 것이 좋습니다.

관련 문제