2013-06-12 2 views
1

JOBNAME 필드의 다른 값에 대해 FOR 루프 내부에서 제 3 자 REST URL을 호출하는 시나리오가 있습니다. 각각의 JOBNAME에 대한 로깅 구문을 별도의 로그 파일에 기록하고 싶습니다. 즉, REST URL로 전송 된 요청, 모든 중간 비즈니스 로직 로깅 및 수신 된 응답은 각 JOBNAME에 대한 다른 로그 파일의 일부 여야합니다.Log4j MDC를 비 스레드 응용 프로그램에 사용할 수 있습니까?

여기서 주목할 점은 처리에는 스레드가 필요 없다는 것입니다. 스레드가없는 시나리오에서도 MDC 방식이 log4j에 적합합니까? 그렇지 않다면 어떻게해야합니까?

답변

2

단일 스레드가 있으면 MDC 컨텍스트에 변수를 넣을 수 있으며 호출을 전파하고 수행 할 때마다 기록 할 수 있습니다. 재미있는 스태프가 호출되기 전에 MDC.put (..)을 수행했는지 확인하십시오. 예를 들어, FOR 루프 내에서 MDC.put (..)을 수행 할 수 있으며 각 반복은 동일한 스레드 일지라도 다른 컨텍스트를 사용합니다. 다른 곳에서는 잘 모르지만 Java에서는 잘 작동합니다.