2016-05-23 3 views
-1

Ich habe versucht, jede Ausnahmebedingungsnachricht in meiner Java-Anwendungskonsole zu blockieren, und jetzt mache ich einfach nicht wie es geht.Java Console Logger Ausnahmebehandlung

Ich versuchte, java.util.logging.Logger zu verwenden, und ich wurde ihm Handler hinzugefügt, der gut funktioniert, aber dieser Handler hat keine Funktion wie "cancelPublish".

Gibt es eine Klasse in Java mit Methode, die vor dem Senden von Protokoll ausgeführt wird und als Parameter Ausnahmeobjekt, und in denen ich "print" Protokoll an Konsole stoppen kann, oder ersetzen Sie ihn zu meinem String?

Ich möchte alle meine Ausnahmen (wie diese niedriger) in die Cloud senden, und Ausnahmeprotokoll mit etwas wie "Fehler-ID: XX" ersetzen.

enter image description here

Nächstes muss ich Ausnahmeobjekt erhalten und in die Datenbank senden: wenn Name der Ausnahme, Ausnahmemeldung existiert, und excpetion Spur.

getLogger().addHandler(new SH()); 

private class SH extends StreamHandler { 

    @Override 
    public synchronized void publish(LogRecord record) { 

     if (record.getLevel().intValue() > Level.INFO.intValue()) { 
      // I can there send that log to database 
     } 
    } 
} 

ich so etwas wie diese oberen versucht, aber nicht jedes Protokoll mit Level WARN oder ERROR Ausnahme ist, ist in Java-Methode da wie ?:

getLogger().addExceptionListener(new ExceptionListener() { 
     public void onCheck(ExceptionEvent e) { 
      //First method which I want 
      e.getException(); 

      //and second 
      e.cancelPublish(); 
     } 
    }); 

Gibt es etwas in der Nähe, die in Java ?

+0

Sie zeigen müssen, was Sie bisher versucht haben. Siehe [Wie man eine gute Frage stellt] (/ help/how-to-ask) und [mcve] – Tibrogargan

+0

Ich habe ein Bild hinzugefügt, wenn das hilft. – TheTonsOfCode

+0

Haben Sie einen Code, um uns zu zeigen? Darüber hinaus möchten Sie möglicherweise Beobachter- oder Abonnentenmuster untersuchen und einen Layer um den Logger hinzufügen und über Code verfügen, den Sie zum Analysieren und Abbrechen oder Protokollieren verwenden. – Underbalanced

Antwort

0

I relsolved es durch Filter zu meinem Logger hinzufügen:

getLogger().setFilter(new Filter() { 
     @Override 
     public boolean isLoggable(LogRecord record) { 
      //There I do what I want... 
      return record.getThrown() != null; 
     } 
    });