Airflow的日志记录是基于Python的标准日志模块实现的。默认情况下,Airflow会创建一个根记录器,并且所有的记录器都会继承它的配置。因此,可以说Airflow生态系统共享单个根记录器。
实际上,Airflow可以使用不同的配置创建多个记录器,从而实现对不同部分的日志记录的细粒度控制。以下是一个示例,演示如何在Airflow中创建和配置单独的记录器:
import logging
from airflow import DAG
from airflow.operators.python_operator import PythonOperator
def my_task():
logger = logging.getLogger("my.logger")
logger.setLevel(logging.DEBUG)
logger.addHandler(logging.StreamHandler())
logger.debug("Hello, Airflow!")
with DAG(dag_id="example_dag", schedule_interval=None) as dag:
task = PythonOperator(
task_id="example_task",
python_callable=my_task,
)
在这个示例中,我们首先导入Python标准库的logging模块,然后使用getLogger()方法创建了一个名为“my.logger”的记录器。接下来,我们为该记录器设置了DEBUG级别,并添加了一个StreamHandler,以将日志记录输出到控制台上。
最后,在DAG的PythonOperator中调用我们的任务函数。该函数将使用上述配置的记录器输出调试信息。由于我们已经为记录器指定了一个控制台处理程序,因此该信息将直接输出到控制台。
通过创建单独的记录器和处理程序,可以实现对Airflow中不同组件的日志记录进行控制和定制。