You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在future包创建的工作进程中输出控制台日志?

解决future工作进程日志无法实时输出的问题

方法1:通过furrr_options开启stdout转发

在future_map中传递stdout = TRUE参数,让工作进程的标准输出实时转发到主进程控制台,同时确保工作进程内的logger配置为输出到控制台:

library(future)
library(logger)
library(purrr)

plan(multisession)

worker_function <- function() {
  # 显式配置worker进程的日志输出到控制台
  log_appender(appender_console())
  log_info("Hello from a worker!")
  1
}

# 开启stdout转发
x <- future_map(1:2, ~ worker_function(), .options = furrr_options(stdout = TRUE))
x

方法2:改用cluster计划并设置实时输出

切换到cluster计划,通过outfile = ""参数让工作进程的日志直接实时输出到控制台:

library(future)
library(logger)
library(purrr)

# 初始化cluster计划,指定工作进程数并开启实时输出
plan(cluster, workers = 2, outfile = "")

worker_function <- function() {
  log_info("Hello from a worker!")
  1
}

x <- future_map(1:2, ~ worker_function())
x

原理说明

multisession计划默认会捕获工作进程的标准输出,仅在任务全部完成后才会展示;而开启stdout = TRUE或使用cluster计划并设置outfile = "",会让工作进程的输出直接实时转发到主进程的控制台,无需等待任务结束再统一收集日志。

内容的提问来源于stack exchange,提问作者Chechy Levas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 08:02:10