2017-05-31 7 views
-1

Multiple Prozesszugriff auf das Schreiben auf der gleichen Datei gleichzeitig..wenn die Dateigröße am Limit überschritten wird (Beispiel 10 MB), wird die Verarbeitungsdatei umbenannt (sample.txt zu sample1.txt) Appender) und erstellen Sie eine neue mit dem gleichen Namen.C++ - Logger Mehrere Prozess-Unterstützung Logger

Mein Problem ist, mehrere Prozesse gleichzeitig schreiben, Dateigröße überschritten Zeit Datei geschlossen, wenn einer der Prozess noch in der gleichen Datei schreibt. doesnt File rolling .can irgendeine Hilfe

+1

Willkommen bei Stack Overflow. Bitte nehmen Sie sich die Zeit, [The Tour] (http://stackoverflow.com/tour) zu lesen und beziehen Sie sich auf das Material aus der [Hilfe] (http://stackoverflow.com/help/asking), was und wie Sie können fragen Sie hier. –

Antwort

0

Eine Strategie, die ich verwendet habe, funktioniert auch auf einem verteilten Computersystem über mehrere Maschinen.

Wenn Sie eine Bibliothek erstellen, die Protokollnachrichten verpackt und sie dann über TCP an ein Ziel sendet, können Sie so viele Prozesse schreiben, wie Sie möchten, wenn Sie in denselben Protokollierer schreiben. Sie benötigen einen Server an diesem Ziel, um die Protokollmeldungen zu erhalten und sie in eine Datei zu schreiben.

Im Allgemeinen erfolgt die Kommunikation zwischen Prozessen entweder über den gemeinsamen Speicher oder über das Netzwerk. Durch die Vernetzung können wir nicht nur zwischen Prozessen, sondern auch zwischen Maschinen gehen. Wenn wir nur das Ziel von localhost oder 127.0.0.1 verwenden, erreicht das Paket niemals die Netzwerkkarte. Die meisten Treiber sind schlau genug, um das Paket an beliebige Prozesse zu übergeben, was zu einer guten Leistung führt.