2014-04-29 2 views
1

사용자 지정 서식 함수를 사용하고 있으며 범위 특성의 서식을 지정하는 방법을 파악하려고합니다. 내가 찾은 boost 문서의 예제는 람다 표현 형식 작성자를위한 것입니다.이 형식 표식 작성자는 내 형식 작성기 함수 내에서 어떻게 사용할지 모릅니다. 지금은 timetamp와 같은 속성을 사용하고 있지만 scope 속성은 나를 벗어납니다. 이 속성을 검색 할 때사용자 지정 부스트 로그 형식 함수에서 범위 특성 서식 지정

BOOST_LOG_ATTRIBUTE_KEYWORD(scope, "Scope", attributes::named_scope_list) 
BOOST_LOG_ATTRIBUTE_KEYWORD(timestamp, "TimeStamp", boost::posix_time::ptime) 

void formatter(boost::log::record_view const& record, boost::log::formatting_ostream& stream) { 
    stream << record[timestamp]; 
    // stream << record[scope].file_name or something like that 
} 

답변

1

, 그것은 당신에게 그 이름에서 알 수 있듯이 named_scope s의 목록입니다 named_scope_list을 제공합니다. 각 named_scope은 파일, 줄 및 범위 (함수 이름)의 이름을 포함하는 struct입니다. 따라서

, 그것과 같이 사용될 수있다 :

attributes::named_scope_list scopeList = record[scope].get(); 
for (attributes::named_scope_list::const_iterator iter = scopeList.begin(); iter != scopeList.end(); ++iter) 
{ 
    stream << iter->line; 
}