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