Eclipse - Etwas in die .log schreiben

KlaDi

Erfahrenes Mitglied
Hallo,

ich habe eine RCP Anwendung geschrieben und bin gerade dabei, Eingabefehler abzufangen, dabei habe ich mir überlegt, das ich ja mit:
Code:
try {
     Integer.parseInt(meinTextfeld.getText()
} catch (Excepiton e) {
     e.printStackTrace();
}
Wenn es einen Fehler das in die .log-Datei schreibe. Wie kann ich denn aber meine eigene Fehlermeldung in die .log-Datei schreiben?

gruß Klaus.
 
die Klasse org.eclipse.core.runtime.Platform hat eine Methode getLog. Netterweise ist die Methode statisch, so dass Du sie direkt verwenden kannst. btw Zum Testen der Eingabe würde ich einen Verifier benutzen....

Java:
Text text = new Text(shell);
		
		text.addVerifyListener(new VerifyListener(){

			public void verifyText(VerifyEvent event) {
				
				try {
					Integer.parseInt(event.text);
					event.doit = true;
				}
				catch(NumberFormatException e)
				{
					ILog log = Platform.getLog(refToMyBundle);
 // Deine Meldungen....
					event.doit = false;
				}
				
			}
			
		}
	);
 
Zuletzt bearbeitet:
Danke erstmal für die schnelle Hilfe.

Leider habe ich mich nicht ganz klar ausgedrückt.
Ich habe mir eine Klasse geeschrieben, die meine Eingabefelder auf Fehler prüft und mir dementsprechend einen Integer zurückliefert. Nun möchte ich ohne try und catch in die Log-Datei schreiben. Irgendwie ist mir nicht so ganz klar, wie ich das machen soll.

Kann ich nicht irgendwie sagen.
Code:
ILog log;
log.setText("Mein Fehler");

gruß Klaus.
 
Java:
		try {
				// Irgendwas 
			} catch (Exception e) {
			
				ILog logger = Activator.getDefault().getLog();
				IStatus status = new Status(IStatus.WARNING,Activator.PLUGIN_ID,IStatus.OK, e.getMessage(), e);
				logger.log(status);
			}

Leider gibt es für Status nur diesen Constructor

Status(int severity, String pluginId, int code, String message, Throwable exception)

Vielleicht hilft Dir aber dies weiter:

http://www-128.ibm.com/developerworks/library/os-eclog/
 
Habe es noch mal getestet. Wenn man für die Exception null übergibt, läufts wohl so wie Du es wünschst....

Java:
	public void run(IAction action) {
		ILog logger =  Activator.getDefault().getLog();
		IStatus status = new Status(IStatus.WARNING,Activator.PLUGIN_ID,IStatus.OK, "Hallo Welt!", null);
		logger.log(status);
	}
 
Zurück