2012-07-31 30 views
5

Ich suche nach einer Protokollierung für eine Multiprozessanwendung, die auch mehrere Threads mit in jedem Prozess enthält.Anmelden einer Multiprozessanwendung zusammen mit Multithreading

Meine aktuelle Anwendung ist nur Multi-Threaded und verwendet ACE_Message_Queue zum Senden von Protokollierungsereignissen an den Logger-Thread (Die tatsächliche Log-Nachricht wird zwischen Anwendungsthreads und dem Logger-Thread durch ein globales Array geteilt).

Meine neue Anwendung enthält mehrere Prozesse mit mehreren Threads in jedem Prozess. Wie kann ich in diesem Szenario eine anständige Protokollierungsfunktionalität erreichen? Auch ACE zugunsten von Boost loswerden. Meine neue Anwendung soll unter Linux, Mac und Windows laufen.

Vielen Dank im Voraus.

Antwort

1

Boost.Log (v2) ist sehr einfach einzurichten und ziemlich umfassend. Es ist noch nicht in der Boost-Bibliothek, aber es wird bald sein. Sie können es als einfachen Logger verwenden oder Filter schreiben und den Protokollierungsprozess und die Ausgabe anpassen. Ich benutze es für ein Projekt und sehr sehr glücklich damit. See this question.

+0

Mein Verständnis, basierend auf boost.devel ml Diskussionen ist, dass Andrey die Bibliothek Unterstützung gestoppt hat. –

+0

Denke nicht. Hast du irgendwelche Links? – perreal

+0

Während boost.log schön ist (ich benutze es), war es schon sehr lange in einem Zustand, "bald aufgenommen zu werden". –

1

Versuchen Sie log4cplus zu verwenden. Es ist eine aktuelle Logging-Bibliothek ermöglicht die Verwendung von mehreren Prozessen.