我想将该foreach
包与日志记录结合使用。我通常使用这个futile.logger
包。当工作分配给工作人员时,日志信息丢失(这很奇怪,因为您需要指出 foreach 日志包)
我看过这篇文章,但它不使用 foreach
library(foreach)
library(futile.logger)
library(doParallel)
flog.threshold(DEBUG)
cluster <- makeCluster(8)
registerDoParallel(cluster)
doStuff <- function(input){
flog.debug('Doing some stuff with %s', input)
return(input)
}
res <- lapply(FUN=doStuff, X=seq(1,8,1))
# >> this prints
res2 <- foreach(input = seq(1,8,1)) %do% doStuff(input)
# >> this prints
res3 <- foreach(input = seq(1,8,1), .packages='futile.logger') %dopar% doStuff(input)
# >> this does not
identical(res,res2) && identical(res,res3)
我并不真正关心并行后端,可以是任何东西,但我怎样才能让日志记录正常工作