10/10/2019Voici une routine redirigeant la sortie standard du système vers un fichier particulier, en préfixant chaque ligne des données date et heure. Ce n'est évidemment pas du niveau de Log4J mais cela peut répondre à un besoin ponctuel.
package routines;import java.io.File;import java.io.FileNotFoundException;import java.io.PrintStream;import java.util.Arrays;import java.util.Comparator;import java.util.regex.Matcher;import java.util.regex.Pattern;import java.io.OutputStream;import java.text.SimpleDateFormat;import java.util.Calendar;/**
*
* Export des logs de la console vers un fichier
* ex : System.out.println("test");
*
*/public class LogConsoleVersFichier
extends PrintStream { /**
* Initialisation
* @param sFichierDesti
* @throws FileNotFoundException
*/ public static void initialise
(String sFichierDesti
) throws FileNotFoundException { java.
io.
File file
= new java.
io.
File(sFichierDesti
); java.
io.
PrintStream ps
= new java.
io.
PrintStream(new java.
io.
FileOutputStream(file
)); System.
setOut(new LogConsoleVersFichier
(ps
)); System.
setErr(new LogConsoleVersFichier
(ps
)); } public LogConsoleVersFichier
(OutputStream out
) { super(out
); } /**
* Ajout de la date-heure sur chaque ligne
*/ @Override
public void println
(String string
) { String sTimeStamp
= new SimpleDateFormat("yyyy/MM/dd HH:mm:ss.SSS").
format(Calendar.
getInstance().
getTime()); super.
println(sTimeStamp
+ ";" + string
); }} Pour l'appeler :
routines.LogConsoleVersFichier.initialise("c:\\monfichier.log");
Dernière modification le 10/10/2019 - Quillevere.net