2011-12-19 104 views
0

我正在嘗試爲使用log4j.where的應用程序級別(java/java ee)日誌記錄創建組件,並將它放在類路徑中任何應用程序和使用它。下面的方法我都遵循在java/java EE應用程序中使用log4j記錄組件

  1. 我重寫像調試,跟蹤,信息等日誌方法

  2. 單個和多個參數substutution例如MessageFormatter.format("Hi {}. My name is {}.", "Alice", "Bob");將返回字符串「嗨,愛麗絲,我叫鮑勃。」

  3. 說,例如用於跟蹤消息

    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應用程序的組件。這兩種方法是否足夠,或者我需要做更多的事情。請幫忙。

+0

這是做什麼log4j(或slf4j或其他人)還沒有做? – Thilo 2011-12-19 07:43:46

回答

3

在我看來,你正在重新發明輪子。查看SLF4J,它可以完成您要實現的目標,並且可以保護您免受底層郵件系統的攻擊,您可以隨時更改該郵件系統(它也適用於log4j)。

相關問題