0

我编写了一个 bonobo 脚本来提取一些数据,并且我想在我的工作运行时使用 python 的日志记录模块将一些状态消息写入文件。我做了以下事情:

import logging
logging.basicConfig(filename=INFO["LOGFILE_PATH"]+r'\bonobo_job_'+date.today().isoformat(),
                filemode='a',
                format='%(name)s - %(levelname)s - %(message)s')

如果我只是在 Pycharm 中运行脚本,它会按照我的预期记录到文件中。但是,如果我使用 bonobo run 命令从命令行运行它,它会忽略文件名并记录到标准输出。我该如何解决?我需要在某处设置标志或环境变量吗?

4

1 回答 1

0

好的,我想通了。出于某种原因,basicConfig 不起作用。我不得不使用 getLogger 并添加一个 FileHandler。所以我主要是这样做的:

logger = logging.getLogger('bonobo_logger')
ch = logging.FileHandler(logfilename)
formatter = logging.Formatter('%(name)s - %(levelname)s - %(message)s')
ch.setFormatter(formatter)
logger.addHandler(ch)

然后在我想要进行日志记录的图表中的每个节点中,我调用了:

logger = logging.getLogger('bonobo_logger')

并使用记录器对象写出所有消息。如果有人知道更好的方法,请告诉我。

于 2020-09-15T18:19:19.923 回答