如何查看Airflow中DagFileProcessorProcess的运行日志?
解决Airflow 2.2.5中DagFileProcessorProcess日志无法查看的问题
1. 确认目标日志的默认存储位置
Airflow 2.2.5里,处理DAG文件的DagFileProcessorProcess子进程日志,默认存在$AIRFLOW_HOME/logs/dag_processor目录下,日志文件名格式为dag_processor_<进程ID>.log。直接进入这个目录,查看最新生成的文件就能获取DAG解析、动态生成过程的详细日志。
2. 修正配置项使用误区
你之前修改的logging.dag_processor_manager_log_location,控制的是**管理子进程的父进程(DagProcessorManager)**的日志位置,和DagFileProcessorProcess子进程无关,所以调整它不会生效。针对目标进程的正确配置方式:
- 若要将日志输出到stdout:
在airflow.cfg中设置:
注意:必须重启Airflow调度器才会生效,且只有调度器以前台模式运行(直接执行[logging] dag_processor_log_target = stdoutairflow scheduler,而非后台守护进程)时,才能在控制台看到子进程的stdout输出。 - 若要自定义日志文件路径:
2.2.5版本中,DagFileProcessorProcess的日志路径由base_log_folder(默认$AIRFLOW_HOME/logs) +dag_processor子目录组合而成。你可以修改base_log_folder调整日志根目录,或直接在默认的dag_processor子目录下查看。
3. 额外调试技巧
- 手动添加调试日志:在动态生成逻辑的代码中,直接用Python的
logging模块输出关键步骤信息,比如:
这些日志会被写入import logging logger = logging.getLogger(__name__) logger.info("开始读取数据库表,表名:xxx") logger.debug("读取到的原始数据:%s", raw_data)DagFileProcessorProcess的日志文件,帮你精准定位问题。 - 启用DEBUG级别日志:临时将调度器日志级别改为DEBUG,获取更详细的DAG解析过程。修改
airflow.cfg:
调试完成后记得改回INFO级别,避免日志量过大。[logging] logging_level = DEBUG
内容的提问来源于stack exchange,提问作者Yago Dórea
相关产品推荐
相关产品推荐

