2017-05-31 82 views
-1

多進程訪問同時寫入同一文件..如果文件大小超出限制(例如10mb),處理文件被重命名(sample.txt爲sample1.txt)滾動appender)並創建一個相同的名稱。C++ logger多進程支持記錄器

我的問題是,多個進程在同一時間寫入,文件大小超過時間文件關閉,如果其中一個進程仍在寫入同一個文件。沒有文件滾動。可以任何一個幫助

+1

歡迎來到Stack Overflow。請花些時間閱讀[The Tour](http://stackoverflow.com/tour),並參閱[幫助中心](http://stackoverflow.com/help/asking)中的資料,瞭解您可以在這裏問。 –

回答

0

我已經使用的一種策略也適用於跨多臺機器的分佈式計算系統。

如果您創建一個將打包日誌消息,然後通過TCP將它們發送到目標的庫,那麼您可以擁有儘可能多的進程,只要您想寫入同一個記錄器。您需要在該目的地的服務器接收日誌消息並將其寫入一個文件。

通常,進程間通信通過共享內存或網絡進行。使用網絡,我們可以進行不僅僅是進程間,而且還可以進入機器間。如果我們只使用localhost或127.0.0.1的目的地,那麼數據包永遠不會到達網卡。大多數驅動程序都足夠聰明,可以將數據包傳遞給任何進程監聽,從而也帶來了良好的性能。