使用python日志记录模块的OS依赖行为

时间:2018-07-12 09:05:51

标签: python logging multiprocessing os-dependent

This question and answer之后,我正在寻找以下问题的解决方案:

我有一个应该在Windows和Linux上运行的Python程序。

我的python进程产生一个子进程,并且它们都应该有一个文件记录器。我希望他们每个人都登录到自己的日志文件中。

流程创建:

import multiprocessing
multiprocessing.Process(target=my_target, args=(my_args,))

创建日志:

import logging
logger = logging.getLogger()
fh = logging.FileHandler(log_file, mode="a+")
logger.addHandler(fh)

在Windows中,它工作得很好,但是在Linux中,我将子输出写入了子日志和父日志中。

应对这种情况的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

在执行chilld的开始时添加了以下代码来解决该问题:

log = logging.getLogger()
# Remove any existing handlers
for handler in log.handlers:
    log.removeHandler(handler)