문제

log4cxx (RollingFile Appender)를 사용하여 일부 파일에 로그인 C ++ 응용 프로그램이 있습니다. C#에 작성된 다른 모듈에서 동시에 같은 파일에 로그인하고 싶습니다. 따라서 동일한 파일을 사용하도록 log4net을 구성했지만 새 메시지를 가져올 수는 없습니다. C ++ 로깅을 비활성화하면 C# 메시지를 볼 수 있습니다. 그래서 나는 그것이 잠금 문제라고 생각하고 log4cxx에 파일을 잠그지 말라고 지시하는 구성 옵션을 찾았습니다. log4net의 Minimallock 모델에 들어 왔지만 log4cxx에서는 아무것도 찾을 수 없었습니다 ... 아무도 그것이 할 수 있는지, 어떻게 알 수 있습니까?

미리 감사드립니다.

Ernesto Cullen

도움이 되었습니까?

해결책

두 개의 다른 프로세스가 동일한 파일에 로그인하려고 시도하는 한 어떤 구성을 사용하든 동시성 및 경합 문제가 발생할 수 있다고 생각합니다.

두 프로세스에서 세 번째 중앙 집중식 위치로 로그 이벤트를 보내야합니다. 원격 appender log4net에서는 log4cxx가 비슷한 것을 가지고 있다고 가정합니다.

다른 팁

질문이 상당히 오래되었고 (그리고 답변으로 표시되어 있음) 이미 프로젝트를 완료했을 것입니다.

log4net 및 log4cxx는 서로를 모르는 뚜렷한 로깅 프램 워크이므로 동일한 파일로 작성하도록 구성 할 수 없습니다. Framworks 중 하나만이 글을 쓰기 위해 파일을 열게됩니다.

비슷한 상황에서 수행 한 작업 (Log4Net을 사용하여 새로운 C# 모듈을 사용하는 레거시 C ++ 응용 프로그램)은 다음과 같습니다. 사용자 정의 log4net appender를 만듭니다 전달은 기존 로깅 프레임 워크로 추적됩니다. 내가 참여한 프로젝트에서 이전 C ++ 코드에는 Custom Appender가 사용한 로그 메시지를 작성하기위한 Windows Com 인터페이스가있었습니다.

또 다른 방법은 C ++/CLI를 사용하여 사용자 정의 appender를 만드는 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top