그래서 모든 로깅 목적으로 Boost.Log를 사용하고 싶습니다. 나는 현재 도우미 메서드를 인스턴스화하고 설정하는 데 필요한 모든 작업을 포함하는 클래스를 작성했습니다.오버로드 << 부스트 로깅 객체를위한 연산자
< < 연산자에 과부하로 문제를 적용하여 문제를 해결할 수 없습니다. 서로 다른 인수 유형을 갖는 것이 가장 큰 문제인 것 같아서 사용할 수 있기를 원합니다. 여기
내가 뭘하려 :
template <typename T>
void trace::operator <<(T data)
{
std::string text=boost::lexical_cast<std::string>(data);
std::cout<<data<<std::endl;
BOOST_LOG_TRIVIAL(debug) << text;
}
그러나, 나는이 그것은 논리의에 약간의 결함이 이해합니다. 여러 args를 < <으로 전달하려면 재귀 적이어야합니다. 하지만 부스트 로그로 어떻게 처리하는지 조금 혼란 스럽습니다.
편리한 부스트 매크로 대신 사용자 정의 싱크를 사용하여 로그 시스템을 정의해야합니까? 그렇다면 표준 지원 : ostream 반환이 지원합니까? 나는 이것이 반환 값과 입력 값을 스트림으로 추측하고있다.
사용자 지정 개체에서이 기능을 사용하고 싶습니다. 나 자신의 '로깅'개체를 원하는 여러 스레드가 있습니다. – bge0