동일한 방법으로 메시지를 기록해야하는 C++ 응용 프로그램과 Java 응용 프로그램이 있습니다. 내 Java 응용 프로그램은 Log4j 구성에 의해 지원되는 Apache Commons Logging을 사용합니다. 로깅 환경 설정을 한 위치에서 변경할 수 있도록 단일 log4j 구성이 필요합니다. 내 C++ 응용 프로그램에서 나는 (printf와 모든 통화를 캡처 한)과는 fprintf (표준 ***) 나는 다음과 같은 옵션이 생각하고 :std ***를 로깅을 위해 C++에서 Java로 리디렉션
내 C에서포크 ++ 응용 프로그램은, (F에서 파이프를 만들) 새로운 프로세스 stdin을 printf() 호출하고 Commons Logging을 사용하여 표준 입력 및 로그에서 읽는 Java 프로그램을 시작하십시오.
JNI의 JNI_CreateJVM()을 사용하여 C++ 응용 프로그램에서 JVM을 만들고 Java 로깅 메소드를 호출하십시오. (f) printf() 호출이 이루어짐
Log4cxx와 같은 것을 사용하여 Java 응용 프로그램과 동일한 구성을 읽고 기본적으로 로깅합니다 C++에서
내 응용 프로그램에 다른 타사 종속성을 추가하고 싶지 않기 때문에 가능한 한 옵션 3을 피하고 싶습니다. C++에서 Java로 넘어가는 데 드는 퍼포먼스 비용이 있다는 것을 이해합니다. 그러나 그 정도면 중요 할 지 모르겠습니다.
옵션 4의 경우 +1입니다. 적어도 그렇게되면 작동하지 않는 것으로 나타납니다. –