R process$new 将 stdout 和 stderr 写入同一文件

问题描述

在我的 R 代码中,我将另一个 R 脚本称为这样的单独进程

rp <- callr::process$new(command  = "rcode.R",args     = c("--date",date),stdout   = 'logfile.txt',stderr   = 'logfile.txt',cleanup  = FALSE,echo_cmd = TRUE
)

记录器消息以及任何错误都被写入同一个日志文件。但是错误信息写在文件顶部而不是页面底部

示例日志文件

Error in eval(parse(text = text,keep.source = FALSE),envir) : 
  object 'filepath' not found
Calls: script2... glue_data ->  -> .transformer -> eval -> eval
In addition: Warning messages:
1: In rm(var traceback available 
lEnv") :
INFO [2021-04-20 13:30:37] date : 2021-03-28 
INFO [2021-04-20 13:30:37] user : aaa
INFO [2021-04-20 13:30:37] param2 : value

在上面的示例日志文件中,当发生错误时,我希望在文件末尾打印错误

我也可以问一个子问题吗?为什么即使代码中有错误rp$get_exit_status() 仍返回 zero

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)