我已经编写了一个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命令运行它,它会忽略文件名并记录到stdout。我该如何解决这个问题?有没有我需要设置的标志或环境变量?
发布于 2020-09-16 02:19:20
好吧,我想通了。由于某些原因,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')并使用记录器对象写出所有消息。如果有人知道更好的方法,请让我知道。
https://stackoverflow.com/questions/63906080
复制相似问题