¿Cómo redirecciono stderr y stdout al archivo para un script de Ruby?¿Cómo redirecciono stderr y stdout al archivo para un script de Ruby?
Respuesta
./yourscript.rb 2>&1 > log.txt
redireccionará stdout y stderr al mismo archivo.
Suponiendo que se está ejecutando en * nix –
@Steve: Creo que '>' funciona en Windows, aunque no estoy seguro de '2>'. –
Esto funcionará en Windows también. – gthomaslynch
De 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
Nota: reapertura de los flujos estándares a/dev/null es un buen método antiguo de ayudar a un proceso para convertirse en un demonio. Por ejemplo:
# daemon.rb
$stdout.reopen("/dev/null", "w")
$stderr.reopen("/dev/null", "w")
¿Qué quiere decir con "ayudar a que un proceso se convierta en un daemon"? – silvamerica
En UNIX para convertir un programa en un daemon, el programador no debería simplemente copiarlo en un segundo plano sino también redirigirlo a los flujos estándar de E/S. ¿Estás familiarizado con esto? –
Nota: Si usa el 'Process.daemon' incorporado, puede hacer esto por usted. Ver [documentos aquí] (http://ruby-doc.org/core-2.2.2/Process.html#method-c-daemon). – captainpete
def silence_stdout
$stdout = File.new('/dev/null', 'w')
yield
ensure
$stdout = STDOUT
end
Bueno, pero esto es mejor, en caso de que STDOUT fuera otra cosa. http://stackoverflow.com/a/4459463/26604 –
- 1. ¿Cómo redirecciono temporalmente stderr en Ruby?
- 2. Guardar stdout, stderr y stdout + stderr sincrónicamente
- 3. ¿Cómo consigo STDOUT y STDERR para ir al terminal y un archivo de registro?
- 4. Cómo redirigir stdout y stderr a un archivo
- 5. ¿Cómo redirigir stdout stderr en un script ant?
- 6. vim filters y stdout/stderr
- 7. Tubería popen stderr y stdout
- 8. stdout y stderr redirección a un único archivo con prefijos
- 9. ¿Cómo redirecciono el resultado de un script de shell completo dentro del script?
- 10. paramiko combinar stdout y stderr
- 11. Cómo redirigir el proceso hijo stdout/stderr al proceso principal stdout/stderr en Java?
- 12. Al usar el subproceso.Popen(), stderr y stdout no tienen salida
- 13. LLVM stdin/stdout/stderr
- 14. Controlando stdout/stderr desde Jython
- 15. Sobre stdout/stderr redirecciones
- 16. Cuándo usar $ stderr vs STDERR en Ruby?
- 17. Duplicar stdout a stderr
- 18. Escribir STDOUT & STDERR en un archivo de registro, también escribir STDERR en la pantalla
- 19. Capturando stdout/stderr con NDK
- 20. ¿Cómo redirecciono stdout a un archivo cuando uso subprocess.call en python?
- 21. cómo controlar popen stdin, stdout, stderr redirection?
- 22. Redirigir stdout y stderr a la función
- 23. Redireccionando stdout y stderr dentro de una regla Makefile
- 24. Cómo redireccionar stdout, stderr a/dev/tty
- 25. Redireccionando stdout/stderr a varios archivos
- 26. Bat redireccionando stderr a stdout tiene un comportamiento extraño
- 27. redirigir subproceso stderr a stdout
- 28. Cómo redirigir stdout y stderr desde el guión CSH
- 29. Cómo capturar stdout/stderr con googletest?
- 30. ¿Debo emitir advertencias a STDERR o STDOUT?
pregunta relacionada: http://stackoverflow.com/questions/4459330/how-do-i-temporarily-redirect-stderr-in-ruby –