Error Datei ertsellen?

ahmet1977

Grünschnabel
Hi,

ich möchte ein Error Datei erstellen, wenn das Programm irgendein Fehler verursachen sollte, sollte in dieser Datei die Fehlerursache stehen.

a) Wie kann ich eine Datei erstellen?
b) wie kann ich den Inhalt dabei füllen?

Danke im Voraus

Gruß

ahmet1977
 
Hallo!

Entweder verwendest du eine entsprechende Logging Bibliothek wie Log4J oder den JDK Logger oder du setzt den Ausgabstestrom für System.err auf einen in einen PrintStream-Gewrapped-ten FileOutputStream der die Ausgaben in deine entsprechende Datei umleitet... System.setErrg PrintStream err )

Gruß Tom
 
Thomas Darimont hat gesagt.:
Hallo!

Entweder verwendest du eine entsprechende Logging Bibliothek wie Log4J oder den JDK Logger oder du setzt den Ausgabstestrom für System.err auf einen in einen PrintStream-Gewrapped-ten FileOutputStream der die Ausgaben in deine entsprechende Datei umleitet... System.setErrg PrintStream err )

Gruß Tom

Hi,

sorry,ich bin ganz neu in diesem Fach. Kannst du mir vielleicht ein Beispiel dafür aufschreiben?

Hab leider keine Ahnung wo und wie ich das einstellen muss.

Gruß

ahmet1977
 
die einfachst moegliche form ist diese
Code:
try {
		System.setErr(new PrintStream(new FileOutputStream("c:\\errorLog.txt")));
	} catch (FileNotFoundException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
 
elmato hat gesagt.:
die einfachst moegliche form ist diese
Code:
try {
		System.setErr(new PrintStream(new FileOutputStream("c:\\errorLog.txt")));
	} catch (FileNotFoundException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}


Hi,
sorry wenn ich eine Blöde Frage stelle:-)), aber wie wird dann der Inhalt dieser Datei gefüllt? Wird der Error message in die Datei geschrieben?

Gruß

ahmet1977
 
ausprobieren :-)
Code:
public static void main(String[] args) {
	
	String s = "bla";
	

	try {
		System.setErr(new PrintStream(new FileOutputStream("c:\\errorLog.txt")));
	} catch (FileNotFoundException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
	int i = Integer.parseInt(s);
	}
normalerweise wuerde dein program dir nun sagen java.lang.NumberFormatException: For input string: "bla" da du "bla" nicht als integer parsen kannst doch anstelle es auf den bildschirm auszugeben wird es in eine txt geschrieben, nachteil meiner version, die txt wird immer ueberschrieben besser waere es neue errors anzuhaengen mit zeit datum etc. aber das ueberlasse ich getrost dir :D
 
elmato hat gesagt.:
ausprobieren :-)
Code:
public static void main(String[] args) {
	
	String s = "bla";
	

	try {
		System.setErr(new PrintStream(new FileOutputStream("c:\\errorLog.txt")));
	} catch (FileNotFoundException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
	int i = Integer.parseInt(s);
	}
normalerweise wuerde dein program dir nun sagen java.lang.NumberFormatException: For input string: "bla" da du "bla" nicht als integer parsen kannst doch anstelle es auf den bildschirm auszugeben wird es in eine txt geschrieben, nachteil meiner version, die txt wird immer ueberschrieben besser waere es neue errors anzuhaengen mit zeit datum etc. aber das ueberlasse ich getrost dir :D

Danke dir vielmals,
es hat geklappt,nur das Programm schließt sich nicht mehr automatisch,obwohl ich
Code:
System.exit(1);
danach eingesetzt habe! Oder muss ich vorher die Datei schließen müssen,wenn ja wie?

Gruß

ahmet1977
 
Zuletzt bearbeitet:
hi,
gibt es nun kein Möglichkeit die Datei,in dem ich nun die Fehlermeldung reingeschrieben habe, zu schließen?

Danke im Voraus

ahmet1977
 
Du musst den Stream erst schließen. Ohne nachzuschaun würd ich jetzt mal sagen:
Code:
try {
                PrintStream p = new PrintStream(new FileOutputStream("c:\\errorLog.txt"));
		System.setErr(p);
	} catch (FileNotFoundException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
                p.close();
	}{
Ansonsten: Immer schön Tutorials gucken
 
skoWWi hat gesagt.:
Du musst den Stream erst schließen. Ohne nachzuschaun würd ich jetzt mal sagen:
Code:
try {
                PrintStream p = new PrintStream(new FileOutputStream("c:\\errorLog.txt"));
		System.setErr(p);
	} catch (FileNotFoundException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
                p.close();
	}{
Ansonsten: Immer schön Tutorials gucken

Hi,danke dir zuächst für dein Vorschlag.Ich habe es angewendet,nur bei p.close wird im Catch der Variable p nicht anerkannt.

Gruß

ahmet1977
 
Zurück