3

def my_task(): print("dask_worker_log_msg") ...

客户=客户()

未来 = client.submit(my_task) print("dask_client_log_msg") ...

我想在一个文件中捕获“dask_client_log_msg”和其他任务日志,在一个单独的文件中捕获“dask_worker_log_msg”和其他客户端日志。显然,客户端将与工作人员完全在一个单独的进程中运行。所以我需要一个进程将其所有消息记录在一个单独的文件中。谢谢。!

4

2 回答 2

2

您可以使用Client.get_worker_logs方法从您的工作人员那里获取日志。您还可以从info窗格中的仪表板下载日志。

于 2018-02-01T12:53:44.697 回答
2

如果您正在尝试实现 Dask 集群并需要它运行的所有作业的日志(包括来自 print 或 logger.info 的脚本的日志),这是一个解决方案:

  1. 在启动工作程序的 bash 脚本中添加重定向: dask-worker >> dask_worker.log 2>&1
  2. 在您的脚本中,将您的记录器设置为 dask.distributed,如下所示: logger = logging.getLogger("distributed.worker")
  3. 配置日志格式.config/dask/distributed.yaml

另请参阅如何从 Dask-Yarn 作业中捕获工作人员的日志?

于 2020-02-17T12:19:24.087 回答