【发布时间】:2020-03-25 23:52:51
【问题描述】:
我正在使用 R 的 sink() 函数将错误、警告、消息和控制台输出捕获到单个文本文件中。
我想知道同时将 message 和 output 类型放入一个打开的文件是否不好?
我将以上所有内容都捕获到一个文件中,但我必须打开一个文件句柄以允许捕获两种接收器类型。以下代码说明了使用文件句柄方法:
message_filename = 'script_messages.txt'
try(message_file <- file(message_filename, open="at")) # open file for appending in text mode
sink(message_file, type="message")
sink(message_file, type="output")
cat("\n\n")
message(format(Sys.time(), "%a %b %d %Y %X TZ(%z)"), appendLF = TRUE)
# next line produces messages since file doesn't exist
try(source("import_file.R"), silent = TRUE)
# Save and close writing errors, warnings, messages, and console output to a file
sink(type="output")
sink(type="message")
close(message_file)
如果我不打开文件句柄,那么接收器“输出”类型的消息是唯一在文本文件中捕获的消息。
关于 sink {base} 的文档在 Details 部分的前半部分有一些关键信息,但我不够流利,无法确定我已经正确实现了它。
【问题讨论】:
标签: r file error-handling output sink