我正在開發基於休息的API。對於API的每個請求,我都希望記錄有關該特定請求的大量信息,例如請求的人,請求的資源,跟蹤此客戶請求此資源的次數,他提供的信息是什麼感興趣等等。在不影響性能的情況下廣泛記錄傳入的API請求
如何在不影響每個請求的響應時間的情況下做到這一點?我的想法是將所有這些日誌信息寫入緩存並將緩存過期時間設置爲5分鐘。然後這5分鐘內的所有傳入請求將被寫入相同的緩存對象。當緩存過期時(可以在發生時進行回調),我將它寫入數據庫。
你看到這種方法的缺點嗎?你有更好的建議嗎?
PS!使用內置的IIS日誌功能不是一個選項,因爲它不夠具體。
更新: 我在這裏實際問的是,如果有任何知名的問題在CacheItemRemoved回調中進行數據庫訪問?這是一個壞主意嗎?
您是否想過以異步方式編寫它?使用工作線程執行此操作。 –
是的,這是我第一次想到的,但是我在某處讀到,從asp.net產生工作線程並不是一個好主意。但也許這是不正確的? – rgullhaug
如果您將使用asp.net線程或者如果您的日誌記錄將導致分配池結束,則可能會出現問題。但順便說一下,如果你登錄請求線程,你的日誌會影響性能嗎?你衡量了性能打擊嗎? –