I'm trying to close my logger instance in a finally block, as follows:
logger <- file("all.Rout", open="wt")
sink(logger, type="message")
tryCatch({
warning('test')
message("A")
log('a')
message("B")
}, error = function(e) {
}, finally = {
sink(type="message")
close(logger)
})
However, only message("A")
is saved to log and nothing else is. If I do the follow, the problem is fixed:
logger <- file("all.Rout", open="wt")
sink(logger, type="message")
tryCatch({
warning('test')
message("A")
log('a')
message("B")
}, error = function(e) {
}, finally = {
})
sink(type="message")
close(logger)
However, I really need the closing to be in the finally
block so that I can view the logs if an error was thrown.
How do I fix this?