我刚开始使用Python日志记录模块,我无法理解某些内容。Python日志记录:每个进程的不同日志记录目标
我正在写一个脚本,在工作方式如下:
第1部分(单进程):它得到一些数据来计算(这并不重要如何)。 在这里,我以下列方式创建一个记录:
import logging
logging.basicConfig(format='%(asctime)-6s: %(name)s - %(levelname)s - %(message)s')
logger = logging.getLogger('Pipeline')
logger.setLevel(logging.INFO)
logger.warning('Pipeline started')
换句话说,我登录到屏幕上。
第二部分(多处理):我创建了几个进程(数据分析真的是时间和CPU消耗)来分析之前发现的数据。
现在我希望每个进程都只记录到不同的文件而不登录屏幕。
我写的是:
fh = logging.FileHandler('/tmp/'+multiprocessing.current_process().name+'_worker.log')
fmt = logging.Formatter(%(asctime)-6s: %(name)s - %(levelname)s - %(message)s)
fh.setFormatter(fmt)
local_logger = logging.getLogger(multiprocessing.current_process().name+'_worker')
local_logger.addHandler(fh)
local_logger.warning(multiprocessing.current_process().name + ' (worker) Process started')
我得到了什么是每个进程的日志到不同的文件,但日志也给屏幕!
我该如何解决这个问题?
我可能会补充说,使用basicConfig()可能不是您的情况恕我直言最适合的选择。正如我的同事杰森指出的那样,它确实意味着非常简单的日志设置。我建议您考虑使用更复杂的方法;通过Google搜索很容易找到几种方法。 –