我在 python 2.7 中使用多处理。我希望每个子进程都记录到自己的文件(文件名 = procname.pid.log),而不是标准日志输出。到目前为止,我已经能够通过在每个子进程的 start() 方法中创建一个记录器和 FileHandler() 来创建每个日志文件,但是我无法阻止日志消息也显示在父日志输出中。我知道父环境是继承的,但是如何在子进程中将其关闭?
我的子进程实现为派生自 multiprocessing.Process 的类。我已经避免使用 logging.basicConfig,因为我听说它只能执行一次。我已经看到这个代码建议:
logger = logging.getLogger(__name__)
logger.propogate = False
但它没有效果。
我完全不清楚日志记录是如何传播的。我认为当我调用 getLogger 时,我创建了一个名为 的新记录器root.__module__
,但我不知道如何让根目录停止 printint 到屏幕。