使用Django,我需要做一些涉及數據庫寫入的每個請求日誌記錄。如何在Django中使用「Lazy-write」每個請求日誌記錄?
我明白Django的process_request()
和process_response()
中間件掛鉤,但據我所知,這些掛鉤處於呈現網頁響應的關鍵路徑(通過設計)。
我不希望我的請求後數據庫寫入操作保持頁面的響應時間。
Django有一個簡單的設計模式,可以讓我做一個「懶惰的日誌寫入」,我可以在請求處理期間使用請求鉤子來收集信息,但是任何後續操作和實際的日誌寫入操作都不會直到響應寫入用戶之後纔會發生?
我目前正在使用WSGI,但寧願使用最通用的解決方案。
一種替代方法是使用緩衝寫入的logging.Handler。也許給它一個flush(),以便你可以告訴它什麼時候寫入「真實」處理程序。 – 2011-03-16 22:37:10
另請參見http://stackoverflow.com/q/4313508/621690 – Risadinha 2017-05-08 19:00:21