Comment rediriger stderr et stdout vers un fichier pour un script Ruby?Comment rediriger stderr et stdout vers un fichier pour un script Ruby?
Répondre
./yourscript.rb 2>&1 > log.txt
Redirigera stdout et stderr dans le même fichier.
En supposant que vous utilisez sur * nix –
@Steve: Je pense que '>' fonctionne sous Windows - je ne suis pas sûr de '2>'. –
Cela fonctionnera aussi sur Windows. – gthomaslynch
De dans un script Ruby, vous pouvez rediriger stdout
et stderr
avec la méthode 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
Comment normal $ stdout peut-il être restauré par la suite? – shevy
pourquoi devrions-nous utiliser la méthode rouvrir? cela signifie que si "out.txt" n'existe pas, il sera créé? – wind
Jetez un coup d'œil à [cette réponse] (http://stackoverflow.com/a/22777806/1287376) pour savoir comment restaurer $ stdout par la suite. –
Note: réouverture des flux standard vers/dev/null est une bonne vieille méthode d'aider un processus pour devenir un démon. Par exemple:
# daemon.rb
$stdout.reopen("/dev/null", "w")
$stderr.reopen("/dev/null", "w")
Que voulez-vous dire par «aider un processus à devenir un démon»? – silvamerica
Sous UNIX, pour que le programme devienne un démon, le programmeur ne doit pas simplement le mettre en arrière-plan, mais également rediriger ses flux d'E/S standard. Connaissez-vous cela? –
Note: Si vous utilisez 'Process.daemon' intégré, il peut le faire pour vous. Voir [docs ici] (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
Bon, mais c'est mieux, dans le cas où STDOUT était autre chose. http://stackoverflow.com/a/4459463/26604 –
- 1. Comment rediriger la sortie stdout et stderr d'un script Perl vers un fichier sous Windows?
- 2. Comment rediriger stdout stderr dans un script ant?
- 3. Comment rediriger STDOUT et STDERR vers une variable
- 4. Rediriger stdout et stderr de fichier dans Django avec wsgi
- 5. Comment rediriger stdout et stderr et conserver la commande?
- 6. Bat rediriger stderr à stdout a un comportement étrange
- 7. Rediriger Stdin et Stdout vers le fichier
- 8. Vérifier stdout ou stderr
- 9. Comment rediriger stdout/stderr dans .NET?
- 10. iPhone SDK: Rediriger stderr/stdout vers la console XCode
- 11. Rediriger le lot stderr vers le fichier
- 12. Filtres vim et stdout/stderr
- 13. Rediriger stdout vers un fichier en C via le code
- 14. ABAP Stdout et Stderr
- 15. stdout et anomalies stderr
- 16. La redirection stderr et stdout Bash échoue
- 17. Comment puis-je obtenir à la fois STDOUT et STDERR pour accéder au terminal et à un fichier journal?
- 18. rediriger stdout vers une question de fichier?
- 19. stderr à stdout
- 20. Rediriger stdout et stderr vers la console de débogage de sortie de Microsoft Visual Studio
- 21. Rediriger la sortie d'erreur CGI de STDERR vers un fichier (python ET perl)
- 22. Peut stdout, stderr toujours té à un fichier régulier?
- 23. Comment rediriger stderr en Python?
- 24. Redirection de la sortie de stdout et de stderr?
- 25. Rediriger stdout vers une chaîne en Java
- 26. rediriger la sortie make complete vers un fichier
- 27. Rediriger stdin stdout vers plusieurs fichiers
- 28. Comment faire pour rediriger TO stdout?
- 29. Comment rediriger la sortie vers stderr dans groovy?
- 30. Bash + cron: Rediriger, et restaurer, stdout et stderr produit l'autorisation refusée
question connexe: http://stackoverflow.com/questions/4459330/how-do-i-temporarily-redirect-stderr-in-ruby –