使用Python 2.6 的多處理模組來產生進程時,通常會為每個進程分配一個模組級記錄器以防止資料遺失共用sys.stderr 檔案句柄中的損壞。然而,確保所有依賴模組也使用這種多處理感知的日誌記錄方法在框架內部和外部都可能很麻煩。
提出了替代解決方案來解決此問題:
建立了一個自訂日誌處理程序,以使用管道將所有日誌記錄呼叫重定向到父進程。這種方法專為 RotatingFileHandler 設計,可以有效地從多個子程序收集日誌並將它們合併到父進程中。
實作涉及:
<code class="python">from logging.handlers import RotatingFileHandler import multiprocessing, threading, logging, sys, traceback class MultiProcessingLog(logging.Handler): # ... Implementation as per above ...</code>
此自訂日誌處理程序利用佇列來實現並發和錯誤復原,確保跨進程的可靠日誌記錄。
以上是如何在 Python 多處理中實現可靠的日誌記錄?的詳細內容。更多資訊請關注PHP中文網其他相關文章!