2009-11-12 25 views
9

Je suis un script ant déclenchement (via le régulateur de vitesse), et je voudrais pouvoir vider le std sur et std err pour une cible ant particulier dans un fichier texte simple.Comment rediriger stdout stderr dans un script ant?

Oui, je suis conscient que le régulateur de vitesse gère déjà un fichier journal XML contenant cette information (entre autres choses), mais pour des raisons de portabilité, j'ai besoin que cela arrive du script ant.

Est-ce possible, et si oui, comment le faire?

Merci beaucoup!

Répondre

8

La tâche recorder peut être en mesure de faire ce que vous voulez:

<record name="log.txt" action="start"/> 
... 
<record name="log.txt" action="stop"/> 

Au-delà, certaines tâches (exec, java, etc.) offrent cette fonctionnalité par eux-mêmes (généralement au moyen de output et error arguments)

6

Essayez ceci:

<java classname="some.package.Class" 
    fork="yes" 
    output="stdouterr.txt"> 
    ... 
</java> 

stdouterr.txt contiendra à la fois stdout et stderr

<java classname="some.package.Class" 
    fork="yes" 
    output="stdout.txt" 
    error="stderr.txt"> 
    ... 
</java> 

stdout.txt et stderr.txt contiendra stdout et stderr respectivement

D'après mon expérience, la tâche d'enregistrement a tendance à l'échec lorsque le script ant est exécuté sur le régulateur de vitesse, en raison de déposer les autorisations d'accès (si quelqu'un peut dire moi comment réparer que je serai un homme heureux).

HTH

+0

Merci, ça fonctionne! – bguiz

+0

Vous avez juste besoin de vous assurer que l'utilisateur CC s'exécute comme a des autorisations d'écriture sur le fichier - il fonctionne très certainement. L'avantage "enregistrement" est qu'il va capturer la sortie de ** n'importe quelle tâche **, pas seulement ceux qui supportent cela en interne. – ChssPly76

10

Il est facile:

ant -logfile <logfile> <command> 

Et vous pouvez aussi dire à Fourmi taire:

ant -q <command> 

Il a bien fonctionné pour moi.

+1

Cela fonctionnerait sur la ligne de commande, je cherchais une solution qui fonctionnerait dans un script ant. Merci pour la réponse de toute façon! – bguiz