我刚开始使用 Python 日志记录模块,有些东西我听不懂。
我正在编写一个按以下方式工作的脚本:
第一部分(单个进程):它获取一些数据来计算(如何计算并不重要)。在这里,我通过以下方式创建一个记录器:
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')
我得到的是每个进程都记录到不同的文件,但也记录到屏幕上!
我怎样才能解决这个问题?