簡體   English   中英

使用 RotatingFileHandler 記錄多個進程

[英]Using RotatingFileHandler to log from multiple processes

我正在使用 multiprocessing 模塊在不同進程之間拆分許多 I/O 作業,並且遇到了從不同進程記錄到同一日志文件的問題。 在尋找解決方案后,我將記錄器中的文件集從普通 FileHandler 更改為 RotatingFileHandler。 在我的實驗中(在開發環境中),它完美地工作並解決了問題,但我不確定這是一種可靠的方法。 有什么缺點嗎? 我應該注意什么?

不,它不受支持。 來自 python 日志記錄手冊

盡管日志記錄是線程安全的,並且支持從單個進程中的多個線程記錄到單個文件,但不支持從多個進程記錄到單個文件,因為沒有標准方法可以跨多個序列化對單個文件的訪問Python 中的進程。

之后,說明書建議使用單個套接字服務器進程來處理日志,而其他進程向其發送日志消息。 通過網絡發送和接收日志事件一節中有一個這種方法的工作示例。

您可以制作一個 api 來接收您的日志並保存在一個文件中。 或者您可以使用隊列來存儲您的日志,所有線程都將其放入該隊列中,將disered 日志和讀取其隊列的單獨進程寫入文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM