출력 로그 메시지를 컬러 코딩하기 위해 사용자 정의 boost::log 포맷터를 사용하고 있지만, 타임 스탬프 및 ThreadID 속성을 로그에 추가하는 방법을 찾지 못했습니다. 파일 로깅을 사용할 때는 keywords::format = "[%TimeStamp%] [%ThreadID%] [%Severity%]: %Message%"
을 logging::add_file_log
매개 변수로 씁니다. 나는 다음과 같은 사용자 정의 포맷터 유사한 효과를 갖고 싶어 : 당신이 로그 레코드를 이러한 특성을 추가 한 점을 감안Custom boost :: log formatter로 TimeStamp 및 ThreadID 속성을 출력하는 방법은 무엇입니까?
void coloring_formatter(const logging::record_view& record,
logging::formatting_ostream& stream)
{
auto severity = record[logging::trivial::severity];
assert(severity);
stream << "\e[1m";
switch (severity.get())
{
case logging::trivial::severity_level::trace:
stream << "\e[97m";
break;
case logging::trivial::severity_level::debug:
stream << "\e[34m";
break;
case logging::trivial::severity_level::info:
stream << "\e[32m";
break;
case logging::trivial::severity_level::warning:
stream << "\e[93m";
break;
case logging::trivial::severity_level::error:
stream << "\e[91m";
break;
case logging::trivial::severity_level::fatal:
stream << "\e[41m";
break;
}
stream // << output TimeStamp
// << output ThreadID
<< "[" << severity << "] "
<< record[logging::expressions::smessage]
<< "\e[0m";
}