12
votes

Timestamps dans la bûche des fourmis?

Y a-t-il un moyen facile d'avoir l'enregistreur de fourmis (par défaut ou autre) ajoutez un horodatage à chaque message?

La seule façon dont je peux penser est d'utiliser le Log4Jlistener et que ses paramètres incluent l'horodatage. Ou écrire un Enregistreur personnalisé qui sous-classes par défautLogger et écrit l'horodatage. S'il y a un moyen meilleur ou plus facile (de préférence sans nécessiter que Les utilisateurs installent un nouveau fichier JAR dans leur Ant Anne Lib),

Je serais intéressé à entendre à ce sujet.


0 commentaires

5 Réponses :


5
votes

Vous pouvez définir une fourde macrodef pour définir l'horodatage actuel, puis appeler la macrodef à chaque fois que vous devez y référoir tout au long de votre Build.xml

Le MacRodef suivant définira l'horodatage sur une propriété (vous pouvez ajouter un attribut. Au MacRodef si vous souhaitez personnaliser la propriété, il se définit): p> xxx pré>

puis pour l'utiliser, il suffit d'accéder à la propriété définie par la macrodef dont vous avez besoin: p>

<target name="doFoo" depends="dir.check" if="dir.exists">
  <set.timestamp/>
  <!--in this example, just echo the timestamp -->
  <echo message="${current.time}"/>
</target>


2 commentaires

Cela stockera l'horodatage dans une propriété, de sorte que tous les messages partageront le même temps. Bon dans certains cas, mais inutile par ex. Voyant quelle partie d'une construction prend trop de temps. Comme l'OP mentionne "un horodatage à chaque message", je ne pense pas que ceci est une réponse correcte à la question de l'intendant.


Je ne suis pas si sûr de ce rasmus. Si vous appelez à plusieurs reprises la macro de l'horodatage défini et immédiatement après cela, il devrait le jeter de manière appropriée.



9
votes

Les propriétés données sont immuables dans la fourmi, vous devez faire quelque chose d'un peu funky ici sinon vous venez de vous retrouver à nouveau à vous connecter le même horodatage et à nouveau.

Utilisation d'AntCall vous donne une nouvelle session qui signifie que vous pouvez réutiliser la propriété, bien que vous pouvez réutiliser C'est un peu maladroit. xxx

Si vous utilisez une fourche 1.8, vous pouvez utiliser local qui est beaucoup plus propre xxx

Et voici comment vous pouvez l'utiliser xxx


0 commentaires

10
votes

Essayez ceci

ant -logger org.apache.tools.ant.listener.profilelogger

Il imprime l'heure d'entrée et l'heure de sortie pour chaque cible ainsi que le temps pris pour chaque cible dans la SP.


0 commentaires

1
votes

Regardez ces enregistreurs: http://ant.apache.org/manual/listeners.html (aussi un - org.apache.tools.ant.listener.profilelogger - est mentionné dans la réponse avant la mienne). Mais cela semblent nécessiter une nouvelle version suffisante de la fourmi.


0 commentaires

2
votes

J'aime la solution macrodef si elle est en effet plus efficace que la cible, mais j'utilise un "var improvité = vrai" pour forcer une réinitialisation de la variable, comme: xxx

Utilisation xxx


0 commentaires