Python 从bonobo etl记录到文件

Python 从bonobo etl记录到文件,python,logging,bonobo-etl,Python,Logging,Bonobo Etl,我已经编写了一个bonobo脚本来提取一些数据,我想在作业运行时使用python的日志模块将一些状态消息写入文件。我已经做了以下工作: import logging logging.basicConfig(filename=INFO["LOGFILE_PATH"]+r'\bonobo_job_'+date.today().isoformat(), filemode='a', format='%(name)s -

我已经编写了一个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中运行脚本,它会像我预期的那样记录到文件中。但是如果我使用bonoborun命令从命令行运行它,它会忽略文件名并记录到stdout。我该如何解决这个问题?是否需要在某个地方设置标志或环境变量?

好的,我找到了。由于某些原因,basicConfig不起作用。我必须使用getLogger并添加一个FileHandler。因此,在main中,我做了以下工作:

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')
并使用logger对象写出所有消息。如果有人知道更好的方法,请告诉我