2015-01-08 2 views

답변

1

는 MEL을 통해, 당신은 그 수준을 얻을 수있는 직접적인 방법이 포함되어 있지 않습니다

#[org.apache.commons.logging.LogFactory.getLog(loggerName)] 

로그인 인터페이스를 사용하여 로거를 액세스 할 수 있지만 일정 수준이 활성 상태인지 아닌지는 알 수 있습니다. 그래서 당신은 MEL의 로거 수준을 얻기 위해 다음 식을 사용할 수 있습니다 이유로, 같은 일을하는 방법이 없습니다

#[log = org.apache.commons.logging.LogFactory.getLog(loggerName); return log.isTraceEnabled() ? "TRACE" : log.isDebugEnabled() ? "DEBUG" : log.isInfoEnabled() ? "INFO" : log.isWarnEnabled() ? "WARN" : log.isErrorEnabled() ? "ERROR" : log.isFatalEnabled() ? "FATAL" : "OFF"] 
+0

로그 4j 속성에서 로그 수준을 가져 오거나 로그 4j xml을 사용하려면 로그 이름 대신 사용할 수있는 내용을 사용하십시오. –

+0

@SatheeshKumar 루트 수준을 가져 오려면 다음을 사용하십시오. ** 루트 **를 로그 이름으로 사용하십시오. 애플리케이션에서 log4j를 사용하기가 쉽지 않은 경우 (다른 로깅 메커니즘으로 변경하지 않으려는 경우) log4j 팩토리에 직접 접근하여 다음 표현식을 사용하여 루트 레벨을 얻을 수 있습니다. # [org.apache.log4j.Logger.getRootLogger) .getLevel(). toString()]' – Nuno

0

. 먼저 로그 레벨과 같은 것은 없지만 패키지 또는 클래스의 로그 레벨과 기본 로그 레벨의 조합은 각 appender가 최소 로그 레벨을 갖게됩니다.

또한 Mule은 SLF4J를 tipically 사용하지만 필연적으로 사용하지는 않습니다 모든 코드가됩니다. 상황이 복잡해지기 때문에 곧 릴리스 될 3.6 로깅 시스템이 상당히 변경되었습니다.

만약 내가해야만한다면 레벨 설정이 된 maven으로 처리 된 리소스로 log4j.properties를 가지고있을 것이고 mule이 속성을 가질 속성 플레이스 홀더로 사용해야하는 속성 파일을 가질 수도 있습니다 처리 된 자원으로 설정합니다.

관련 문제