[C++] 가장 효율적인 thread-safe C ++ 로거 란 무엇입니까?


Answers

Pantheios 는 최고 성능의 C ++ 로깅 라이브러리 로 생각 될뿐만 아니라 100 % 유형 안전성을 주장하는 유일한 라이브러리라고 생각합니다. printf () / iostream 기반 라이브러리가 type- 안전한)

Question

성능이 중요한 멀티 스레드 응용 프로그램에서 일하고 있습니다. rlog, Ace 및 Boost 로깅을 살펴 보았습니다. 나는 그것이 가장 빠르다고 읽었 기 때문에 rlog를 선택했다. (로깅이 비활성화되었을 때, 최소한의 오버 헤드가있다.)

내가 가진 문제는 릴리스 모드에서도 파일 이름, 줄 번호 등을 보여줍니다. 그 정보를 끄는 방법을 말해 줄 수 있다면, 제 문제가 해결 될 수도 있습니다. 어쨌든 내 상황에 가장 효율적인 로거 C ++이 무엇입니까?







일부 오버 헤드는 매크로 / 스트림에서 발생할 수 있습니다. 로깅이 사용 불가능할 때 기록되는 문자열을 작성하지 않도록 매우 신중해야합니다.

영리한 스트림 및? : 연산자를 사용하면 매크로를 수행 할 수 있습니다.




rlog가 제공하는 추가 정보 (예 : 파일 이름, 줄 번호 등)를 차단할 수있는 방법은 다음과 같습니다. main() 함수 (또는 아무 때나 main() 에서 rlog를 초기화하면 다음을 수행 할 수 있습니다.

rlog::RLogInit(argc, argv);
rlog::StdioNode slog (2, rlog::StdioNode::OutputColor);
slog.subscribeTo( RLOG_CHANNEL("error") );

StdioNode 의 두 번째 인수는 출력을 제어하는 ​​플래그입니다. 가능한 플래그의 전체 목록을 보려면 rlog 문서 (Doxygen으로 생성 할 수 있음)를 확인하십시오. 이 예에서 rlog는 다른 정보를 추가하지 않고 심각도에 따라 출력의 색상을 지정합니다.