2017-11-30 5 views
0

일부 경우 소스 문자열에 여러 줄이 포함되어 있습니다. 로그 결과에서 두 번째 줄 이후 접두사를 찾지 못했습니다. 소스 문자열을 한 줄로 나누고 싶지는 않습니다.여러 줄 문자열에 접두사를 추가하는 방법은 무엇입니까?

int main() 
{ 
    BOOST_LOG_TRIVIAL(info) << "hello\nworld"; 
    return 0; 
} 

출력 : 나는 다음과 같은 출력을 원하는

[2017-12-05 09:49:34.957813] [0x000028d4] [info] hello 
world 

는 :

[2017-12-05 10:01:35.033017] [0x00000af8] [info] hello 
[2017-12-05 10:01:35.033017] [0x00000af8] [info] world 
+0

나는 그 질문을 이해하지 못한다. 코드 샘플에 원하는 것을 더 잘 설명해 줄 수 있습니까? –

+0

라인 코드를 추가했습니다. @ Andrey Semashev – liuaifu

+0

죄송합니다. 문제가 무엇이고 원하는 것을 아직 이해하지 못합니다. –

답변

1

불행하게도,이 Boost.Log와 함께 할 수 없습니다. 개행을 포함하여 스트리밍 표현식에서 생성하는 출력이 모두 한 번만 포맷 된 단일 로그 레코드로 간주되므로 출력에 하나의 타임 스탬프와 기타 속성 만 있습니다.

라인을 다른 로그 레코드로 수동으로 구분해야합니다. 로그 메시지 텍스트를 외부 소스 (예 : 네트워크 또는 일부 라이브러리의 콜백)에서받은 경우 텍스트를 개행 문자로 나눠야합니다.