Hallo,
ich habe ein Programm geschrieben was ca. 30 Sekunden läuft. Bisher habe ich an bestimmten Stellen Ausgaben auf der Konsole gemacht (ganz normal mit System.out.print... ). Diese Ausgaben will ich aber irgendwann nicht mehr auf dem Bildschirm haben aber in einer Datei.
Ich verwende dazu java.util.logging. Um die Ausgaben in eine Datei zu schreiben hab ich mir ein Logger-Objekt erzeugt und einen FileHandler hinzugefügt.
Alle "System.out.print..."- Ausgaben habe ich durch entsprechende "Logger.log(..." Methoden ersetzt. Das mit dem Schreiben in die Datei funktioniert auch ohne weiteres.
Nun möchte ich aber solange ich noch am Programm arbeite doch noch die Ausgaben über den Standard- Ausgabe- Stream auf der Konsole sehen. Dazu hab ich mir einen Streamhandler erzeugt dem ich den "System.out"- Stream übergeben habe.
Mein Problem ist nun das das Programm nahezu komplett durchlaufen muss, bis der Logger die erste Ausgabe in der Konsole erzeugt. Ich will aber nicht immer so "lange" warten müssen. Gibt es eine Möglichkeit die Ausgabe des Loggers zu beschleunigen?
ich habe ein Programm geschrieben was ca. 30 Sekunden läuft. Bisher habe ich an bestimmten Stellen Ausgaben auf der Konsole gemacht (ganz normal mit System.out.print... ). Diese Ausgaben will ich aber irgendwann nicht mehr auf dem Bildschirm haben aber in einer Datei.
Ich verwende dazu java.util.logging. Um die Ausgaben in eine Datei zu schreiben hab ich mir ein Logger-Objekt erzeugt und einen FileHandler hinzugefügt.
Code:
Logger logger = Logger.getLogger("test");
logger.setUseParentHandlers(false); // keine Standardausgabe auf System.err
FileHandler fh = new FileHandler("test.log");
fh.setFormatter(formatter);
logger.addHandler(fh);
Alle "System.out.print..."- Ausgaben habe ich durch entsprechende "Logger.log(..." Methoden ersetzt. Das mit dem Schreiben in die Datei funktioniert auch ohne weiteres.
Code:
//System.out.println("test");
logger.log(Level.INFO, "test");
Nun möchte ich aber solange ich noch am Programm arbeite doch noch die Ausgaben über den Standard- Ausgabe- Stream auf der Konsole sehen. Dazu hab ich mir einen Streamhandler erzeugt dem ich den "System.out"- Stream übergeben habe.
Code:
StreamHandler sh = new StreamHandler(System.out,formatter);
logger.addHandler(sh);
Mein Problem ist nun das das Programm nahezu komplett durchlaufen muss, bis der Logger die erste Ausgabe in der Konsole erzeugt. Ich will aber nicht immer so "lange" warten müssen. Gibt es eine Möglichkeit die Ausgabe des Loggers zu beschleunigen?