우리는 소비자의 여러 요청을 동시에 처리하는 웹 로직 배치 애플리케이션을 보유하고 있습니다. 우리는 puposes를 기록하기 위해 log4j를 사용합니다. 지금 우리는 여러 요청에 대해 단일 로그 파일에 로그인합니다. 로그가 단일 파일에있는 모든 요청에 대해 특정 요청에 대한 문제를 디버깅하는 일이 번거로워집니다.Log4j : 요청 당 하나의 로그 파일
요청 당 하나의 로그 파일을 만들 계획입니다. 소비자가 처리를 수행해야하는 요청 ID를 보냅니다. 이제 실제로 여러 명의 소비자가 요청 ID를 애플리케이션에 전송할 수 있습니다. 그래서 질문은 요청에 따라 로그 파일을 seggregate하는 방법입니다.
& 때마다 프로덕션 서버를 중지 할 수 없으므로 날짜 시간 소인이나 요청 ID가있는 재정의 된 파일 appender를 사용하는 것이 배제됩니다. http://veerasundar.com/blog/2009/08/how-to-create-a-new-log-file-for-each-time-the-application-runs/
나는 이러한 대안 장난 시도 :
http://cognitivecache.blogspot.com/2008/08/log4j-writing-to-dynamic-log-file-for.html
http://www.mail-archive.com/[email protected]/msg05099.html
이러한 접근 방식은 원하는 결과를 제공하지만이 작동하지 않습니다이 아래 문서에 설명되어 무엇인가 동시에 여러 요청을 보내는 경우 제대로. 동시성 문제로 인해 로그가 여기 저기에 있습니다.
여러분의 도움을 기다리고 있습니다. 미리 감사드립니다 ....
@ eqbridges log4j에서 NDC를 사용 했습니까? 내가 log4j API 에서이있어 ... 중첩 된 진단 컨텍스트, 또는 간단히 NDC는 서로 다른 소스에서 인터리브 로그 출력을 구별하는 도구입니다. 서버가 여러 클라이언트를 거의 동시에 처리 할 때 일반적으로 로그 출력이 인터리브됩니다. 다른 컨텍스트의 각 로그 항목에 고유 한 스탬프가 있으면 인터리브 된 로그 출력이 여전히 의미가 있습니다. 이것은 NDC가 작동하는 곳입니다. –
나는 과거에 NDC를 사용했다. 그것은 정말로 당신이하려고하는 것에 대한 적절한 해결책입니다. 요청 당 별도의 로그 파일을 작성하려고하면 발생하는 문제의 표면을 긁어 모으고 있습니다. –