2017-11-30 5 views
0

Manchmal enthält die Quellenzeichenfolge mehrere Zeilen. Ich habe kein Präfix seit der zweiten Zeile im Log-Ergebnis gefunden. Ich möchte die Quellzeichenfolge nicht in einzelne Zeile aufteilen, haben Sie eine Idee? Wie füge ich ein Präfix für mehrere Zeilen hinzu?

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

Ausgang:

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

ich die folgende Ausgabe wollen:

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

Ich verstehe die Frage nicht. Können Sie ein Codebeispiel mit einer besseren Erklärung für das, was Sie tun möchten, bereitstellen? –

+0

Ich habe einen Zeilencode hinzufügen. @ Andrey Semashev – liuaifu

+0

Sorry, ich verstehe immer noch nicht, was das Problem ist und was Sie tun möchten. –

Antwort

1

Leider ist dies nicht möglich, mit Boost.Log zu tun. Die Ausgabe, die Sie im Streaming-Ausdruck generieren, einschließlich der Zeilenumbrüche, wird als einzelner Protokolldatensatz betrachtet, der einmal formatiert ist. Daher enthält er nur einen Zeitstempel und andere Attribute in der Ausgabe.

Sie sollten die Zeilen manuell in verschiedene Protokollsätze aufteilen. Wenn der Protokollnachrichtentext von einer externen Quelle (z. B. Netzwerk oder als Rückruf von einer Bibliothek) empfangen wird, müssen Sie den Text selbst durch Zeilenumbrüche teilen.

Verwandte Themen