如何将日期附加到文件名以进行日志记录

时间:2016-08-24 06:20:34

标签: r

我目前正在通过调度程序触发R脚本。有时R脚本会导致错误(可能是由于输入问题)。每次运行后,我会得到一个包含历史记录日志的r-out文件。该日志非常有助于检查是否所有内容都按计划进行,但遗憾的是它每天都会被覆盖。我现在的问题是:如何每天获得一个不同的r-out文件(例如,使用日期)

致以最诚挚的问候,谢谢, 菲尔

1 个答案:

答案 0 :(得分:3)

要生成包含当前日期的文件名,您可以获取Sys.Date()的输出并使用paste0来组成文件的名称,包括日期。

也许是这样的:

filename <- paste0("R-out_", Sys.Date(), ".log")
#> filename
#[1] "R-out_2016-08-24.log"

如果需要,可以使用format()更改日期格式(感谢@Konrad提醒)。例如,我们可以使用format(Sys.Date(), "%d-%m-%Y")来获取通常使用的日 - 月 - 年表格,例如在欧洲:

filename <- paste0("R-out_", format(Sys.Date(), "%d-%m-%Y"), ".log")

我们可以使用sink()将脚本的控制台(标准)输出重定向到文件。在这种情况下,可以编辑脚本以包含如上所述的filename的定义,然后是命令

sink(filename)

在标准输出中显示任何内容之前,应将其插入脚本文件中。可能这两行(文件名和接收器命令的定义)可以放在最开头,但我建议先使用setwd(<pathToMyOutputDirectory>)来指定输出目录。在sink(filename)命令之后,通常在控制台中显示的任何输出都将存储在根据filename中存储的字符串调用的文件中。在脚本结束时,最好使用sink()而不使用任何参数(或等效地,sink(file = NULL))来恢复标准输出的默认设置。

相关问题