Runtime Exceptions in eine Datei schreiben

Sneakizzel

Mitglied
Hallo zusammen,

ich würde gerne Runtime-Exceptions in eine Datei schreiben, z.B. wenn irgendwo eine NullPointerException auftritt möchte ich die erkennen und dann mittels einer entsprechende Routine
etwas in eine Textdatei schreiben.

Hat vielleicht einer eine Idee wie ich erkennen kann ob irgendwo eine Runtime-Exception geworfen wurde und wie ich dann na diesen Stacktrace komme?

Vielen Dank im voraus
sneakizzel
 

faetzminator

Gesperrter Benutzer
Wenn du die Exception nicht abfängst, dann schreibt die JVM sowieso die Meldung auf den Error Stream. Warum leitest du nicht einfach diesen (und/oder den Output Stream) in eine Datei um? Natürlich kannst du auch mit Loggern (z.B. Log4J) arbeiten, aber die Exception abfangen und loggen musst du trotzdem. Da kannst du natürlich in der main() ein [c]Throwable[/c] abfangen, loggen, weiterwerfen.
 

Sneakizzel

Mitglied
Ahh, super danke das ist genau das Stichwort was ich gesucht hatte, ich habs wie folgt gemacht:

Java:
PrintStream ps;
		final File errorFile = new File("./fileA.txt");
		
		try {
			ps = new PrintStream(new BufferedOutputStream(new FileOutputStream(errorFile,true)), true);
			System.setErr(ps);
			
		} catch (FileNotFoundException e) {
			...
		}

Jetzt würde ich gerne das gleiche noch sagen wir in fileB.txt schreiben, worin auch von einer anderen Stelle andere Informationen reingeschreibe, vielleicht kann mir da noch einer ein Stichwort geben.

Danke
 

BlackViruZ

Aktives Mitglied
Schreibe eine eigene Klasse, die das ein OutputStream Interface Implementiert (z.b. den PrintStream) und lass die klasse in mehrere OutputStreams schreiben.
(Quasi Delegate Methoden, davon abgesehen, dass Sie z.b. auf eine Collection an Streams zugreift statt nur auf einen).

lg
 

faetzminator

Gesperrter Benutzer
Du kannst das auch gleich mit der [c]cmd[/c], [c]bash[/c] oder was du auch immer willst gleich umleiten, ohne da einen Javahack zu machen.
Aber natürlich kannst du dir einen neuen Stream schreiben, welcher alles in ein File schreibt und zusätzlich nach [c]System.err[/c] delegiert. Diesen neuen Stream kannst du dann mit [c]System.setErr()[/c] setzen.
 

BlackViruZ

Aktives Mitglied
Du kannst das auch gleich mit der [c]cmd[/c], [c]bash[/c] oder was du auch immer willst gleich umleiten, ohne da einen Javahack zu machen.
Aber natürlich kannst du dir einen neuen Stream schreiben, welcher alles in ein File schreibt und zusätzlich nach [c]System.err[/c] delegiert. Diesen neuen Stream kannst du dann mit [c]System.setErr()[/c] setzen.

Java "Hack" ?
Ich persönlich nenne das programmieren.. xD
Hat ja nix mit Hacken zu tun.. du implementierst halt das Interface in dem Sinne wie du es benötigst.. dafür sind interfaces da.....

Wenn man das auf CLI ebene handled ist es nicht mehr betriebssystem-unabhängig - bzw man muss ein eigenes script pro betriebssystem schreiben, da seh ich keinen vorteil.
Btw - man kann per windows cmd einen output in 2 dateien schreiben? good 2 know
 

Sneakizzel

Mitglied
Moin,

also ich hab' die Variante von BlackViruZ gewählt, habe allerdings kein entsprechendes Interface gefunden, hab dann einfach von PrintStream abgeleitet und die entsprechenden Methoden abgeleitet:

Java:
public class MyPrintStream extends PrintStream {

	public MyPrintStream(OutputStream out, boolean autoFlush) {
		super(out, autoFlush);
	}

	public void println(Object obj){
		myLogging(obj);
		super.println(obj);
		
	}

	public void println(String obj){
		myLogging(obj);
		super.println(obj);
		
	}

...

Es funktioniert wie gewünscht, ich bin aber offen für Verbesserungsvorschläge ;-)

Grüße sneakizzel
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
W JavaDoc Runtime-Exceptions: Wie sinnvoll anzeigen? Allgemeine Java-Themen 14
M Registry Autostart Eintrag ertstellen mit Java (Runtime.getRuntime().exec()) Allgemeine Java-Themen 0
M this application requires a java runtime environment 1.8.0 Allgemeine Java-Themen 2
S Gibt es eine Moeglichkeit die Runtime Ausführung zu analysieren..? Allgemeine Java-Themen 7
J Verschiedene Runtime Versionen gleichzeitig? Allgemeine Java-Themen 12
K Threads Runtime und Process Probleme Allgemeine Java-Themen 3
H Runtime reagiert erst wenn Programm abbricht Allgemeine Java-Themen 1
J Probleme mit der Java-Runtime Allgemeine Java-Themen 10
M Runtime.exec() verursacht auf manchen Systemen Probleme - Ursache unklar Allgemeine Java-Themen 2
S Command funktioniert in Kommandzeile aber nicht mit ProcessBuilder bzw. Runtime.exec auf MAC Allgemeine Java-Themen 3
D Java Objekt als Service in Runtime registrieren Allgemeine Java-Themen 1
Thallius Runtime.getRuntime().exec " escapen? Allgemeine Java-Themen 9
W Threads Mit Thread und Runtime externe Programme öffnen Allgemeine Java-Themen 0
C Runtime Problem Allgemeine Java-Themen 1
P programm öffnen mit der runtime Allgemeine Java-Themen 9
N Runtime.getRuntime().exec Problem mit find Allgemeine Java-Themen 3
P Runtime bzw. RAM-Auslastung eines Prozesses Allgemeine Java-Themen 9
M Befehl in Runtime ausführen der Eingabe benötigt Allgemeine Java-Themen 3
aze Jar ausführen über Runtime.execute funktioniert nicht Allgemeine Java-Themen 4
T Bluescreen bei Runtime.exec(); Allgemeine Java-Themen 8
I Runtime.getRuntime().exec Problem Allgemeine Java-Themen 4
G Runtime.exec beendet Programm unter Linux, wenn Java Programm beendet wird Allgemeine Java-Themen 3
N Runtime.exec() Exception Problem Allgemeine Java-Themen 3
N Runtime.exec() Allgemeine Java-Themen 7
N Internet Explorer mit bestimter Java Runtime starten Allgemeine Java-Themen 2
truesoul Runtime.getRuntime().exec nebenbei ausführen Allgemeine Java-Themen 12
S Runtime.getRuntime()... Allgemeine Java-Themen 6
Z Runtime.getRuntime().exec-Problem Allgemeine Java-Themen 4
J Runtime.exec setzt Fokus auf Frame Allgemeine Java-Themen 2
V Probleme mit Runtime.exec() Allgemeine Java-Themen 3
M Runtime.exec() - Performance / Frage zu Threads Allgemeine Java-Themen 5
S Rückgabewert runtime Allgemeine Java-Themen 11
M Runtime.getRuntime().exec(cmd); auf windows ... Allgemeine Java-Themen 2
martin82 Java Runtime Update >17 - SwingWorker Änderungen? Allgemeine Java-Themen 7
T Runtime.exec() Allgemeine Java-Themen 3
X Wann ist Runtime.getRuntime().exec mit Copy fertig? Allgemeine Java-Themen 10
W java ohne runtime Allgemeine Java-Themen 2
G Output eines über Runtime.getRuntime.exec gestarteten Jars Allgemeine Java-Themen 6
N runtime.exec() Problem Allgemeine Java-Themen 6
W Runtime.getRuntime().exec() Allgemeine Java-Themen 10
lordcarlos Runtime exec und mplayer (linux) Allgemeine Java-Themen 11
C JApplet und Runtime.getRuntime().exec() Allgemeine Java-Themen 2
K Runtime.exec mit Timeout Allgemeine Java-Themen 5
0 Runtime.exec() VLC starten klappt nicht Allgemeine Java-Themen 9
G Runtime.exec - Prozess "mittendrin" "einfach Allgemeine Java-Themen 4
G Runtime? Allgemeine Java-Themen 3
J Runtime.exec unter win vista? Allgemeine Java-Themen 10
M Probleme Runtime.getRuntime().exec(Start.cmd); Allgemeine Java-Themen 10
F Problem mit Runtime.exec() Allgemeine Java-Themen 8
S Problem mit Runtime. Allgemeine Java-Themen 2
E Programm mit der Runtime ausführen Allgemeine Java-Themen 8
M Runtime & Exception Allgemeine Java-Themen 3
J ServiceInterface - Runtime() > jemand eine idee? Allgemeine Java-Themen 2
A Runtime oder ProcessBuilder exe starten Allgemeine Java-Themen 3
V Java-Programm vom USB-Stick ohne Runtime-Installation Allgemeine Java-Themen 18
W In Runtime Output schreiben Allgemeine Java-Themen 5
J Probiert mal bitte aus (Thread + Runtime) Allgemeine Java-Themen 10
A Installierte Runtime ermitteln Allgemeine Java-Themen 3
M Runtime.exec unter Vista (Administrator Rechte) Allgemeine Java-Themen 2
K Probleme mit Runtime.getRuntime().exec Allgemeine Java-Themen 6
T ausführbares jar File mit integriertem Java Runtime 6+JOGL Allgemeine Java-Themen 7
A Runtime.getRuntime().exec mit Warte auf Beendigung - Wie? Allgemeine Java-Themen 7
R Problem mit Runtime.getRuntime().exec() Allgemeine Java-Themen 4
the[V]oid Ausführen von "javac" über Runtime.exec() Allgemeine Java-Themen 4
W Runtime Error216 Runtime error 217 Allgemeine Java-Themen 6
B Runtime Verzeichniss wechseln Allgemeine Java-Themen 8
C Java SE Runtime 6 Update 1 - IE 7 und FF 2.0 - Allgemeine Java-Themen 6
F Runtime.getRuntime().exec mit Linux und Leerzeichen Allgemeine Java-Themen 3
D runtime.exec --> Prozess hängt sich auf Allgemeine Java-Themen 7
T Runtime.exec -> Prozesskontrolle abgeben ? Allgemeine Java-Themen 11
B Probleme mit Runtime.getRuntime().exec("cmd.exe") Allgemeine Java-Themen 4
M Runtime.getRuntime().exec(txt_rsync_option.getText()); Allgemeine Java-Themen 12
M Rückgabewert von Runtime.getRuntime().exec() Allgemeine Java-Themen 2
G Programm wird von java cmd runtime nicht aufgerufen? Allgemeine Java-Themen 13
S Runtime.exec() berechtigungen Allgemeine Java-Themen 5
S Runtime.exec und X Umgebung Allgemeine Java-Themen 2
A Runtime Process bricht nicht ab! Allgemeine Java-Themen 7
F Shell-Programme per Runtime.exec() starten und mehr? Allgemeine Java-Themen 4
K Runtime.exec und DFÜ-Verbindung Allgemeine Java-Themen 5
C Rechte unter WinXP, MySQL-Server per Runtime herunterfahren? Allgemeine Java-Themen 6
P Copy mit Runtime.exec() unter Unix Allgemeine Java-Themen 4
D Problem mit Runtime.getRuntime().exec() Allgemeine Java-Themen 14
L Runtime.getRuntime.exec() Allgemeine Java-Themen 7
T Probleme mit Runtime.exec in Jar File Allgemeine Java-Themen 2
M Runtime.exec unter Linux Allgemeine Java-Themen 11
G Java Runtime Verzeichnis ermitteln Allgemeine Java-Themen 3
X Problem mit Runtime.getRuntime().exec("cls"); Allgemeine Java-Themen 18
S Runtime.getRunTime().exec("jar cvf .) hängt sich auf Allgemeine Java-Themen 3
9 J2SE Runtime Environment 5.0 Allgemeine Java-Themen 6
M Runtime.getRuntime().exec() - Fehler abfangen Allgemeine Java-Themen 5
S Runtime exec unter MacOS X will nicht "open pfad" Allgemeine Java-Themen 7
S dvbscan mit Runtime.getInstance().exec() ausführen ? Allgemeine Java-Themen 24
B Problem mit Runtime.getRuntime().exec() Allgemeine Java-Themen 4
G Runtime.getRuntime() Allgemeine Java-Themen 10
G Runtime.getRuntime().exec("cmd /c START") Allgemeine Java-Themen 3
M Runtime.exec() => java.io.exception: too many open files Allgemeine Java-Themen 10
S Programm starten mit Runtime aktuelles Verzeichnis wechseln Allgemeine Java-Themen 7
Jose05 Umgang mit Exceptions in einen Programm Allgemeine Java-Themen 2
M Exceptions - wann / wie verwenden? Allgemeine Java-Themen 4
W Exceptions behandeln Allgemeine Java-Themen 16

Ähnliche Java Themen

Neue Themen


Oben