2011-12-19 10 views
0

log4j.whereを使用してアプリケーションレベル(java/java ee)ロギングのコンポーネントをビルドしようとしています。コンポーネントのjarファイルを作成し、どのアプリケーションでも使用できます。アプローチの下には私は、例えば、デバッグ、トレース、情報などのようにjava/java EEアプリケーションでlog4jを使用してコンポーネントをロギングする

  • 単一および複数の引数substututionをログメソッドをオーバーライド

    1. を踏襲していますMessageFormatter.format("Hi {}. My name is {}.", "Alice", "Bob");は、文字列"Hi Alice。My name is Bob"を返します。

    2. は、例えば、トレース・メッセージ

      public boolean isTraceEnabled() { return logger.isTraceEnabled();} 
      
      public void trace(String msg, Throwable throwable, Object... args) { 
          log(isTraceEnabled(),throwable,msg,args);// 
      } 
      
      private void log(boolean isEnabled, Throwable throwable, String msg,Object... args) 
      { 
      
          if(throwable!=null){ 
           String message=MessageFormatter.getFormattedMessage(throwable);//Formated the exception message 
           msg=msg+message; 
           throwable=null; 
          } 
      
           if (args == null || args.length == 0) { 
            logger.log(FQCN,LEVELmsg, throwable); 
           } else { 
            if (isEnabled) { 
             String formattedMsg = MessageFormatter.arrayFormat(msg, args);//single and multiple argument substutution 
             logger.log(FQCN, UtilConstant. Level.TRACEformattedMsg, throwable); 
            } 
           } 
      } 
      

    のために私の目的は、すべてのJava EEアプリケーションに応えることができるコンポーネントを構築することであると言います。それが2つのアプローチで十分か、それ以上のことをする必要があります。助けてください。

  • +0

    これは、log4j(またはslf4jなど)がまだ実行していないことは何ですか? – Thilo

    答えて

    3

    あなたは車輪を再発明しているようです。 SLF4Jをチェックすると、実装しようとしていることを実行でき、いつでも変更できる基本的なメッセージングシステムから守ることができます(これはlog4jと同時に動作します)。

    関連する問題