Comment pouvons-nous rediriger la sortie de la console Eclipse vers un fichier? Je peux:
Run Configuration
-> Commons
-> Select a file
.System.setOut(PrintStream)
et System.setErr(PrintStream)
.Le problème avec 1) est que je dois enregistrer la sortie de la console dans différents fichiers au lieu d’un fichier.
Le problème avec 2) est qu’il ne stocke que la sortie de la console générée par System.out.println()
ou le stacktrace d’une exception levée. Il ne capture pas d'autres types de sorties, par exemple. log4j avertissements etc.
Comment pouvons-nous rediriger par programmation la sortie de la console vers différents fichiers?
Allez dans Exécuter en tant que et choisissez Run Configurations
-> Common
et dans l'entrée et la sortie standard, vous pouvez également choisir un fichier.
Vous pouvez utiliser une "variable" dans le nom du fichier de sortie, par exemple:
/tmp/FetchBlock-${current_date}.txt
date actuelle:
Renvoie l'heure système actuelle au format aaaaMMjj_HHmm. Un argument optionnel peut être utilisé pour fournir un formatage alternatif. L'argument doit être un modèle valide pour Java.util.SimpleDateFormat.
Ou vous pouvez également utiliser une propriété système ou une variable env_var pour spécifier quelque chose de dynamique (vous devez en spécifier un en tant qu'argument)
Vous pouvez définir la sortie de System.out par programme en procédant comme suit:
System.setOut(new PrintStream(new BufferedOutputStream(new FileOutputStream("/location/to/console.out")), true));
Modifier:
Etant donné que cette solution est basée sur un PrintStream
, nous pouvons activer autoFlush, mais selon le docs :
autoFlush - Un booléen; si la valeur est true, le tampon de sortie sera vidé chaque fois qu'un tableau d'octets est écrit, qu'une des méthodes println est appelée ou qu'un caractère de nouvelle ligne ou un octet ('\ n') est écrit
Donc, si une nouvelle ligne n'est pas écrite, pensez à System.out.flush()
manuellement.
(Merci Robert Tupelo-Schneck)
Pour résoudre le problème, j'utilise la variable $ {string_Prompt}. Il montre une boîte de dialogue de saisie lors de l'exécution de l'application. Je peux régler la date/heure manuellement dans cette boîte de dialogue.
Nous pouvons le faire en définissant la variable de la classe System de la manière suivante
System.setOut (nouveau PrintStream (nouveau FileOutputStream ("Chemin du fichier de sortie"))). Vous devez également fermer ou effacer la variable "out" (System.out.close () ou System.out.flush ()) pour ne pas manquer de sortie.
Source: http://xmodulo.com/how-to-save-console-output-to-file-in-Eclipse.html