cadenas archivos ruby redirect stdout stderr

archivos - ¿Cómo redirecciono stderr y stdout al archivo para un script de Ruby?



archivos en ruby (4)

Nota: la reapertura de las transmisiones estándar a / dev / null es un buen método antiguo para ayudar a que un proceso se convierta en un daemon. Por ejemplo:

# daemon.rb $stdout.reopen("/dev/null", "w") $stderr.reopen("/dev/null", "w")

¿Cómo redirecciono stderr y stdout al archivo para un script de Ruby?


Desde dentro de un script de Ruby , puede redirigir stdout y stderr con el método IO#reopen .

# 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


./yourscript.rb 2>&1 > log.txt

redirigirá stdout y stderr al mismo archivo.


def silence_stdout $stdout = File.new( ''/dev/null'', ''w'' ) yield ensure $stdout = STDOUT end