2010-07-01 6 views
0

우리는 로깅 기능을 위해 log4j를 사용하고 있습니다. 응용 프로그램이 클러스터 된 환경에서 실행 중입니다. 모든 인스턴스가 동일한 로그 파일에 로그온하도록 log4j 등록 정보를 구성하는 방법은 무엇입니까?클러스터 환경에서 log4j 구성

+0

충분한 정보가 부족합니다. "클러스터 된 환경"은 무엇을 의미합니까? – skaffman

+0

클러스터링은 서버의 작업 부하를 여러 시스템에 분산시키는 개념입니다. 이들은 서로 다른 기계 또는 다른 JDK로 실행되는 동일한 응용 프로그램의 인스턴스입니다. 클러스터의 모든 인스턴스에 대해 중앙 집중식 로그 파일을 만들고 싶습니다. – Mithun

+0

예, 우리는 클러스터링의 의미를 알고 있습니다. 우리는 클러스터링의 종류 * 종류 *를 알아야합니다. 이는 여러 가지 다른 것들을 의미 할 수 있습니다. 클러스터링은 복잡한 상황이며 3 개의 짧은 문장으로 의미있는 질문을 할 수 없습니다. – skaffman

답변

0

하나의 솔루션은 로깅 전용 디렉토리를 갖는 것입니다. 이 디렉토리는 두 프로세스에서 동일한 위치에 마운트 된 네트워크 공유 (NFS 등)에있을 수 있습니다. 이것은 파일 구조에서 동일한 지점에 마운트하는 것만 큼 간단하거나 환경 변수 ($ LOGDIR)를 사용하여 수행 할 수 있으므로 각 호스트가 로컬 파일 구조의 다른 위치를 가리킬 수 있습니다.

중요한 것은 여러 프로세스가 동일한 파일에 쓰도록 폴더를 공유한다는 것입니다. 그러나 일반적인 공유 리소스 제한은 적용됩니다. 하나의 호스트가 파일을 잠그지 않도록하고, 다른 하나는 쓰기를 방지하십시오. 또한 호스트 이름/프로세스 이름/스레드 ID를 포함하는 출력 패턴을 사용하십시오.

또 다른 접근 방식은 로그 테이블에 기록하는 데이터베이스 appender입니다. 필요한 공유는 없지만 다중 프로세스 로깅 문제를 고려하여 테이블을 디자인해야합니다.

관련 문제