로그 수준을 찾아 문자열 변수에 저장하는 MEL식이 있습니까? Google을 검색했지만 찾지 못했습니다. 아무도 나를 도울 수 있습니까?Mule 식에서의 Mel expression anypoint Studio
0
A
답변
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
. 먼저 로그 레벨과 같은 것은 없지만 패키지 또는 클래스의 로그 레벨과 기본 로그 레벨의 조합은 각 appender가 최소 로그 레벨을 갖게됩니다.
또한 Mule은 SLF4J를 tipically 사용하지만 필연적으로 사용하지는 않습니다 모든 코드가됩니다. 상황이 복잡해지기 때문에 곧 릴리스 될 3.6 로깅 시스템이 상당히 변경되었습니다.
만약 내가해야만한다면 레벨 설정이 된 maven으로 처리 된 리소스로 log4j.properties를 가지고있을 것이고 mule이 속성을 가질 속성 플레이스 홀더로 사용해야하는 속성 파일을 가질 수도 있습니다 처리 된 자원으로 설정합니다.
로그 4j 속성에서 로그 수준을 가져 오거나 로그 4j xml을 사용하려면 로그 이름 대신 사용할 수있는 내용을 사용하십시오. –
@SatheeshKumar 루트 수준을 가져 오려면 다음을 사용하십시오. ** 루트 **를 로그 이름으로 사용하십시오. 애플리케이션에서 log4j를 사용하기가 쉽지 않은 경우 (다른 로깅 메커니즘으로 변경하지 않으려는 경우) log4j 팩토리에 직접 접근하여 다음 표현식을 사용하여 루트 레벨을 얻을 수 있습니다. # [org.apache.log4j.Logger.getRootLogger) .getLevel(). toString()]' – Nuno