2016-05-23 11 views
-1

私のJavaアプリケーションコンソールですべての例外メッセージをブロックしようとしましたが、今はどうしていないのですか?Java Console Logger例外処理

私はjava.util.logging.Loggerを使用しようとしましたが、彼はHandlerにはうまくいきましたが、Handlerは "cancelPublish"のような機能を持っていません。

ログを送信する前に実行され、パラメータExceptionオブジェクトとして実行されるメソッドを持つjavaクラスがありますか?コンソールへの「印刷」ログを停止するか、彼をMy Stringに置き換えることができますか?

私はすべての例外(クラウドなど)を送信する必要があり、例外ログは「エラーID:XX」のようなものに置き換えます。例外名、存在する場合は例外メッセージ、およびexcpetionトレースを:

enter image description here

次は私が例外オブジェクトを取得し、データベースに送信する必要があります。

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 
     } 
    } 
} 

が、私はこのアッパーのようなものを試してみましたが、レベルのないすべてのログがWARN、またはERRORは例外で、?:

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

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

のようなJavaメソッドであり、Javaのそれに近いものがあります?

+0

を、あなたがこれまでに試みているものを示す必要があります。 [良い質問をする方法](/ help/how-to-ask)と[mcve] – Tibrogargan

+0

を参照してください。 – TheTonsOfCode

+0

私たちに見せるためのコードはありますか?さらに、オブザーバーや加入者のパターンを調べ、ロガーの周りにレイヤーを追加し、分析や取り消しやログに使用するコードを使用することもできます。 – Underbalanced

答えて

0

私は私のロガーにフィルターを追加することによって、それをrelsolved:

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