使用气流1.10.4
配置的登录文件名-captains_log.py
:
LOG_FORMAT_S = ('pid %(process)d - %(asctime)s - %(levelname)s - '
'%(filename)s - %(funcName)s - line %(lineno)d - '
'%(message)s')
lgr = logging.getLogger(LOGGER_NAME)
lgr.setLevel(10)
stream_handler = logging.StreamHandler()
stream_handler.setFormatter(logging.Formatter(LOG_FORMAT_S))
lgr.addHandler(stream_handler)
def info(msg, **kwargs):
lgr.info(msg=msg, extra=kwargs)
当我在本地运行时:
log_ = captains_log
log_.info(msg="this is a test for log_.info")
它返回:pid 91955 - 2020-10-04 22:08:58,511 - INFO - captains_log.py - info - line 73 - this is a test for log_.info
但是在气流日志中它会打印两次,但是只有一个与这样的日志格式匹配:
[2020-10-04 20:59:28,094] {base_task_runner.py:115} INFO - Job 250085: Subtask test_py_operator pid 941 - 2020-10-04 20:59:28,093 - INFO - captains_log.py - info - line 73 - this is a test for log_.info
[2020-10-04 20:59:28,094] {logging_mixin.py:95} INFO - [2020-10-04 20:59:28,093] {captains_log.py:73} INFO - this is a test for log_.info
关于我应该做些什么以仅获取一次日志的任何想法?
也许我应该提到我刚刚从python 2.7和airflow 1.7迁移而来,这个问题在旧版本中不存在
谢谢!