微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决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 举报,一经查实,本站将立刻删除。