rhttp-redirectsink

R function Sink isn't redirecting messages or warnings to a file


I am looking to redirect stderr and stdout messages to an output file. Here's what I tried:

sink("outputFile" ,type = c("output", "message"))
print("using print")
cat("using cat\n")
message("using message")
warning("using warning")

When I run this code, I still see "using message" and "using warning" in my R console, and it's not being redirected.

Is there a way to redirect both stdout and stderr to a file? I used this code to redirect my stderr to stdout, but that's not exactly what I'm looking for.

sink(stdout(), type = "message") # sink messages to stdout

Solution

  • You need to do it in two steps, using something like this:

    zz <- file("test.txt", open = "wt")
    sink(zz ,type = "output")
    sink(zz, type = "message")
    print("using print")
    cat("using cat\n")
    message("using message")
    warning("using warning")
    #and to close connections
    sink()
    sink()
    

    enter image description here