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 даже после того, как в коде есть ошибка?

0 ответов

Другие вопросы по тегам