2017-03-21 1 views
0

소프트웨어 개발 로깅 시스템을 선택하는 중입니다. 우리는 분명 옵션이 boost.log V2Boost.log V2의 모든 효과를 최종 제품에서 제거 할 수 있습니까?

가 광범위하므로 부스트를 사용하지만 우리 팀에서 사용할 수를 선택하기 전에, 나는이 문서에서 답을 찾을 수 없습니다 몇 가지 질문이 있습니다

1 - 생성 된 코드에서이 효과를 완전히 제거 할 수 있습니까? 나는 내가 어떤 성능 등을 잃어버린하고 있지 않다 위의 코드에서 로깅 시스템의 효과를 제거 어떤 방법이

int main() 
{ 
    for(int i=0;i<100;i++) 
    { 
     int j=doSomething(i); 
     BOOST_LOG_TRIVIAL(trace) << << "I=2<<i <<" j="<<j; 
     } 
} 

예를 들어이 코드가 있다고 가정하고 나는 그것을 디버깅이 방법으로해야 그것을 사용한 결과?

2- 심각도를 추가하는 동시에 로깅 섹션에 섹션을 추가 할 수 있습니까? 내 코드에는 여러 섹션이 있으며 언제든지 섹션에서 작업하고 있습니다. 나는 특정 섹션에 대한 데이터를 기록하기위한 로깅을 설정할 수 있기를 원하며, 작업중인 일부를 기준으로 필터링해야하는 로깅 항목과 여러 섹션이있을 수있는 전체 응용 프로그램이 아닌.

다른 싱크에 다른 로깅을 보낼 가능성이 있으므로 예를 들어 일부 로깅은 콘솔로 이동하고 다른 일부는 파일로 이동합니까?

+1

예, 예, 예. 문서에 모두 나와 있습니다. –

+0

@RichardHodges 감사합니다! 어디에? – mans

+1

http://www.boost.org/doc/libs/1_63_0/libs/log/doc/html/log/detailed.html –

답변

0

생성 된 코드에서이 효과를 완전히 제거 할 수 있습니까?

컴파일 단계 (예 : 전처리 스위치)에서 Boost.Log의 사용을 제거하려는 경우, Boost.Log는이를 제공하지 않습니다. Boost.Log 초기화의 조건부 컴파일과 컴파일시 로깅을 사용할 수 없을 때 아무 것도 확장하지 않는 자체 로깅 매크로를 포함하여 자체 지원을 구현해야합니다.

컴파일 타임 종속성을 제거하지 않고 로그를 완전히 비활성화하는 것을 의미하는 경우 core::set_logging_enabled 또는 filters을 사용할 수 있습니다. 모든 로그 레코드의 조건을 확인하기위한 성능 비용은 여전히 ​​적지 만 로그 레코드는 생성되지 않습니다.

심각도를 추가 할 때 동시에 로깅 섹션을 추가 할 수 있습니까?

예, channels을 사용할 수 있습니다. 채널 이름에 필터를 적용하여 유지할 메시지와 표시하지 않을 메시지를 선택할 수 있습니다. Here과 관련된 답변입니다.

다른 싱크에 다른 로깅을 보낼 수있는 가능성이 있습니다. 예를 들어 일부 로깅은 콘솔로 이동하고 다른 일부는 파일로 이동합니까?

예, 다시 채널 및 필터를 사용하여이를 수행 할 수 있습니다. 그것을 설명하는 SO 답변을 참조하십시오.

관련 문제