2014-10-22 1 views
0

매개 변수 (String logMessage,String level)으로 가져 오는 메소드를 만들어야합니다. logger -SetLogLevel에 대한 매개 변수도 있습니다. 가능한 수준은 낮음, 보통, 높음입니다.로거 레벨 알고리즘

  • SetLogLevel == low 일 경우 로그 출력에는 모든 레벨의 모든 메시지가 포함되어야합니다.
  • SetLogLevel == medium이면 로그 출력에는 medium ||과 같은 수준의 모든 메시지가 포함되어야합니다. 높은.
  • SetLogLevel == high 인 경우 "높은"레벨의 메시지 만 출력되어야합니다.

어떤 생각? 한 가지 방법으로 만 구현할 수 있습니까? 예를 들어 SetLogLevel == medium, 중간 수준 만 출력 될 때와 같은 방식으로 이러한 메서드를 구현할 수는 있지만 위의 방법으로 수행하는 방법을 알 수는 없습니다.

답변

1
public enum LoggerLevel { 
    Low(0), Medium(1), High(2); 

    private int value; 
    public LoggerLevel(int val) { 
     this.value = value; 
    } 

    public int getValue() { 
     return value; 
    } 
} 

public void log (String mes, LoggerLevel lvl) { 
    if (lvl.getValue() >= getLoggingLevel().getValue()) { 
     // logic here 
    } 
} 

편집 : C#과 비슷하게 작성했습니다. 자바에서 enum은 정수가 아니며 객체입니다.

+1

어떻게'lvl> ='이 효과가 있습니까? –

+0

편집을 확인하십시오. 나는 두 언어 LOL 사이에 끊임없이 마녀를 썼기 때문에 C#으로 작성한 것처럼 작성했습니다. C#에서 열거 형은 정수 유형 만 확장 할 수 있습니다. – sturcotte06