Airflow 默认会将日志记录到其安装目录下的logs
文件夹中,但是也可以通过配置更改日志记录的位置。以下是一个示例解决方法:
打开airflow.cfg
配置文件。该文件位于Airflow安装目录下的airflow
文件夹中。
找到并修改以下配置项:
logging_level = WARNING
logging_config_class = log_config.LOGGING_CONFIG
将logging_level
设置为WARNING
,以减少日志记录的级别。将logging_config_class
设置为log_config.LOGGING_CONFIG
,以使用自定义的日志配置。
创建一个名为log_config.py
的新文件,放置在Airflow安装目录下的airflow
文件夹中。
在log_config.py
文件中,添加以下代码:
import os
from airflow import configuration as conf
def LOGGING_CONFIG():
log_dir = conf.get('logging', 'BASE_LOG_FOLDER')
filename_template = conf.get('logging', 'LOG_FILENAME_TEMPLATE')
filename = filename_template.format(scheduled_dag_file=__file__)
log_filepath = os.path.join(log_dir, filename)
return {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'console': {
'class': 'logging.StreamHandler',
'formatter': 'airflow',
'stream': 'ext://sys.stdout'
},
'file': {
'class': 'logging.FileHandler',
'formatter': 'airflow',
'filename': log_filepath
}
},
'formatters': {
'airflow': {
'format': '%(asctime)s - %(name)s - %(levelname)s - %(message)s'
}
},
'root': {
'handlers': ['console', 'file'],
'level': 'INFO'
}
}
这个函数定义了自定义的日志配置,将日志记录到指定的文件中。
保存log_config.py
文件。
重新启动Airflow服务。
这样,Airflow将不再记录日志到默认位置,而是记录到自定义的日志文件中。请注意,这个解决方法仅适用于Airflow v2.0及以上版本。