How do I redirect stderr and stdout to file for a Ruby script?
How do I redirect stderr and stdout to file for a Ruby script? Mark Rushakoff From within a Ruby script , you can redirect stdout and stderr with the IO#reopen method. # a.rb $stdout.reopen("out.txt", "w") $stderr.reopen("err.txt", "w") puts 'normal output' warn 'something to stderr' $ ls a.rb $ ruby a.rb $ ls a.rb err.txt out.txt $ cat err.txt something to stderr $ cat out.txt normal output Note: reopening of the standard streams to /dev/null is a good old method of helping a process to become a daemon. For example: # daemon.rb $stdout.reopen("/dev/null", "w") $stderr.reopen("/dev/null", "w")