Comment rediriger la sortie vers stderr dans groovy?

je cherche un moyen de rediriger la sortie dans un script groovy vers stderr:

catch(Exception e) {
    println "Want this to go to stderr"
}
27
demandé sur timdisney 2008-12-19 22:17:06

4 réponses

Juste à côté du haut de ma tête que vous ne pourriez pas faire un peu d'auto-câblage:

def printErr = System.err.&println
printErr("AHHH")

mais c'est un peu manuel

20
répondu codeLes 2008-12-19 21:07:32
System.err << "Want this to go to stderr"

Ou vous pouvez l'ajouter en haut de votre script

def err = System.err
...
err << "Want this to go to stderr"

ce qui est ce que je fais maintenant dans mes scripts de shell groovy

19
répondu James Frost 2010-12-09 14:00:15

Groovy a accès à la JRE:

System.err.println "goes to stderr"

bien qu'il puisse y avoir une façon plus Groovy-fied...

16
répondu Dan Vinton 2014-08-27 11:22:16

Si vous voulez quelque chose de plus court à taper, voici deux options. Tout d'abord, vous pouvez importer java.lang.Système de ce que vous voulez, plus précisément quelque chose de plus court comme "sys":

import java.lang.System as sys
sys.err.println("ERROR Will Robinson")

ensuite, vous pouvez affecter le Système.err flux à une variable et utiliser cette variable à partir de là comme un alias pour le Système.err, de la forme:

err = System.err
err.println("ERROR again Will Robinson")

Cela a l'avantage possible que toutes les fonctions du Système.les RRE sont accessibles, donc vous n'avez pas à les brancher individuellement. (par exemple err.imprimer, tre.println, etc.).

espérons qu'il y ait une manière Groovy standard, parce que le renommage idiosyncratique peut être déroutant pour les gens qui lisent votre code.

1
répondu 2009-03-14 21:14:44