使用多处理模块记录

时间:2016-09-28 11:56:33

标签: python python-2.7 logging

我需要创建一个可以在我的python包中使用的单个记录器,但是一些函数实现了多处理。我希望所有这些函数都像其他所有函数一样写入同一个日志文件。

我知道在Python 3.2+中有一种内置方法可以做到这一点,但我也需要将端口备份到Python 2.7.x.

是否有任何代码适用于多处理和非多处理功能以进行记录?

通常情况下,我会创建一个日志:

module = sys.modules['__main__'].__file__
logging.basicConfig(stream=sys.stderr, level=logging.DEBUG,
                format='%(name)s (%(levelname)s): %(message)s')
log = logging.getLogger(module)
fh = RotatingFileHandler(arguments.o, mode='a', maxBytes=2*1024*1024,
                        backupCount=2, encoding=None, delay=0)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %    (message)s')
fh.setFormatter(formatter)
fh.setLevel(logging.DEBUG)
log.addHandler(fh)

然后输出将写入单个文件。它工作得很好,但是当我实现它时,这段代码将创建多个文件,这是我不想要的。

有什么想法吗?

谢谢

1 个答案:

答案 0 :(得分:0)

通过here可以在Python 2.7中使用Python> = 3.2(通过QueueHandlerQueueListener类完成此操作,如logutils所述)项目