2011-12-19 2 views
0

log4j.where를 사용하여 애플리케이션 레벨 (java/java ee) 로깅을위한 컴포넌트를 빌드하려고합니다. 컴포넌트의 jar 파일을 생성하여 클래스 경로에 넣을 수 있습니다. 모든 응용 프로그램과 그것을 사용하십시오. 접근 방식 아래 내가java/java EE 애플리케이션에서 log4j를 사용하는 로깅 컴포넌트

  1. 가 나는 등 디버그, 추적, 정보 등의 로그 메소드를 오버라이드 (override) 따랐다

  2. 단일 및 다중 인수 substutution 예를 들어, MessageFormatter.format("Hi {}. My name is {}.", "Alice", "Bob");"안녕 앨리스, 내 이름은 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); 
          } 
         } 
    } 
    

내 목표는 모든 자바 EE 애플리케이션을 수용 할 수있는 구성 요소를 구축하는 것입니다 추적 메시지를 예를 들어 말한다. 두 가지 접근 방식으로 충분합니까 아니면 더 많이 할 필요가 있습니다. 도와주세요.

+0

log4j (또는 slf4j 또는 기타)가 아직 수행하지 않는 작업은 무엇입니까? – Thilo

답변

3

나는 당신이 바퀴를 재발 명하고있는 것처럼 보입니다. SLF4J을 확인하십시오. 구현하고자하는 일을 할 수 있으며 언제든지 변경할 수있는 기본 메시징 시스템을 차단합니다 (log4j와 함께 작동 함).

관련 문제