45 votes

Ajout de la sortie d'un fichier batch au fichier journal

J'ai un fichier batch qui appelle un programme java.

La sortie est redirigée vers un fichier journal dans le même répertoire. Cependant, le fichier journal est remplacé à chaque exécution du fichier batch...

Je voudrais conserver les anciennes sorties dans le fichier journal et toujours ajouter la nouvelle sortie au fichier journal.

110voto

Jon Skeet Points 692016

Au lieu d'utiliser ">" pour rediriger comme ceci :

 java Foo > log

utilisez ">>" pour ajouter la sortie "stdout" normale à un fichier nouveau ou existant :

 java Foo >> log

Cependant, si vous souhaitez également capturer les erreurs "stderr" (par exemple, pourquoi le programme Java n'a pas pu être démarré), vous devez également utiliser la balise "2>&1" qui redirige "stderr" (le "2") vers " stdout" (le "1"). Par exemple:

 java Foo >> log 2>&1 

0voto

Jon Mitchell Points 86

Utilisez plutôt log4j dans votre programme Java. Ensuite, vous pouvez sortir sur plusieurs supports, créer des journaux évolutifs, etc. et inclure des horodatages, des noms de classe et des numéros de ligne.

0voto

Jordan Stewart Points 1266

Il est également possible d'utiliser java Foo | tee -a some.log . il s'imprime également sur stdout. Comme:

 user at Computer in ~
$ echo "hi" | tee -a foo.txt
hi

user at Computer in ~
$ echo "hello" | tee -a foo.txt
hello

user at Computer in ~
$ cat foo.txt
hi
hello

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X