使用Parallel Python记录工作进程

Tho*_*mas 2 python logging parallel-python

我继承了在集群上使用Parallel Python维护一些科学计算.使用Parallel Python,作业将被提交给ppserver,在这种情况下,它会与其他计算机上已经运行的ppserver进程进行通信,将任务输出到ppworkers进程.

我想使用标准库日志记录模块来记录提交给ppserver的函数中的错误和调试信息.由于这些ppworkers作为单独的进程运行(在不同的计算机上),我不确定如何正确构建日志记录.我必须为每个进程登录一个单独的文件吗?也许有一个日志处理程序可以让它变得更好?

另外,我想要报告什么计算机遇到错误的过程,但我正在编写登录的代码可能不知道这些事情; 也许这应该发生在ppserver级别?

(在并行Python论坛上交叉发布的问题的版本,如果我从非SO用户那里得到关于此的内容,我会在这里发布答案)

Vin*_*jip 6

解决问题的一种方法是执行以下操作:

  1. 在每个工作进程中,使用a logging.handlers.SocketHandler将事件从工作程序发送到专用记录器进程.
  2. 根据https://docs.python.org/3/howto/logging-cookbook.html#sending-and-receiving-中文档中给出的工作示例,创建一个专用的记录器进程,用于侦听套接字上的记录事件.记录的事件-跨一个网络
  3. 利润;-)

如果您在工作程序功能中捕获异常并记录它们,那么您应该能够在一个位置查看所有工作程序中的错误.