使用 Python 2.6 的多处理模块来生成进程时,通常会为每个进程分配一个模块级记录器以防止数据丢失共享 sys.stderr 文件句柄中的损坏。然而,确保所有依赖模块也使用这种多处理感知的日志记录方法在框架内部和外部都可能很麻烦。
提出了替代解决方案来解决此问题:
创建了一个自定义日志处理程序,以使用管道将所有日志记录调用重定向到父进程。这种方法专为 RotatingFileHandler 设计,可以有效地从多个子进程收集日志并将它们合并到父进程中。
实现涉及:
<code class="python">from logging.handlers import RotatingFileHandler import multiprocessing, threading, logging, sys, traceback class MultiProcessingLog(logging.Handler): # ... Implementation as per above ...</code>
此自定义日志处理程序利用队列来实现并发和错误恢复,确保跨进程的可靠日志记录。
以上是如何在 Python 多处理中实现可靠的日志记录?的详细内容。更多信息请关注PHP中文网其他相关文章!