2014-01-27 7 views
7

Ich habe boost::log erfolgreich verwendet, um auf stdout (mit den TRIVIAL Makros) oder zu protokollieren, um in eine Datei (im Grunde die Schritte in der Anleitung) zu protokollieren.Boost.Log in Datei und stdout gleichzeitig?

Wie würden wir konfigurieren, um zu einer Datei und gleichzeitig zu protokollieren?

Dies ist ein häufiger Anwendungsfall in unserem Setup, wenn wir sowohl eine Protokolldatei als auch die gesamte Ausgabe haben möchten, die zum Protokoll auf der Konsole geht.

Jeder Eingang geschätzt!

+0

haben Sie versucht, [diese Dokumentation] (http://boost-log.sourceforge.net/libs/log/doc/html/log/tutorial/sinks.html) zu lesen? Es heißt 'Sie können mehr als eine Senke registrieren. Jede Senke empfängt und verarbeitet Protokolldatensätze, wenn Sie sie unabhängig von anderen ausgeben. ' – nurettin

+0

@nurettin Ja, aber wie registrieren Sie Senken für die Ausgabe zu stdout? Konnte das nicht finden (noch ..) – cacau

+2

add_stream (boost :: shared_ptr (& std :: cout, empty_deleter())); //? – nurettin

Antwort

15

Per the docs können Sie einfach die add_console_log() Komfortfunktion wie folgt:

#include <boost/log/utility/setup/console.hpp> 

logging::add_console_log(std::cout, boost::log::keywords::format = ">> %Message%"); 

Natürlich können Sie immer in die Konfiguration manuell Waschbecken graben, wie durch einige der Kommentare angezeigt.

Verwandte Themen