다음과 같이 보일 수있는 매크로가 있습니다 (부스트 로그 라이브러리에서)벡터에 넣기위한 함수 포인터로 감싸 진 C++ 매크로
#define L_(lvl) BOOST_LOG_USE_LOG_IF_LEVEL(g_l(), g_log_level(), lvl)
boost :: function <> 오브젝트 또는 함수 포인터로 감싸서 큐 또는 벡터에 고정시킬 수 있습니까? 그런 항목들 중?
그렇다면 어떻게해야합니까?
로그 파일에 모든 로깅을 쓰는 스레드가 하나있는 메커니즘을 작성하려고하는데 작업자 스레드 중 하나라도 로그 할 수 있어야하지만 활성 로그 수준에 따라 달라질 수 있습니다. d 기록 된 내용 만 기록하려고합니다. 그래서 로그 메시지를 대기열에 넣고 전용 스레드를 사용하여 각각의 파일에 기록하는 대기열을 작성하여 로깅이 많이 필요할 때 프로그램을 느리게하지 마십시오. 나는 boost :: log 라이브러리를 사용하여이 매크로로 작업해야한다.
lvl
는이 함수에 전달할 로그 수준입니다. 그 사용법은 다음과 같습니다 : L_(debug) << "some log text";
그리고이 L_ 매크로가 로그 메시지에 대해 사용하는 스트리밍 << 연산자는 어떻게됩니까? 나는 functor를 사용하고 그 operator <<에 과부하를해야합니까? –