我在Weblogic 10.3.3上構建了一個web服務,我正在使用一個servlet過濾器將請求記錄到數據庫。我不希望過濾器放慢對web服務的調用。所以我其實有兩個問題。Servlet過濾器和線程?
1)過濾器,或者我可以讓過濾器做一個單獨的線程日誌記錄?如果是的話如何?
2)有沒有一種方法可以動態地打開或關閉過濾器,而無需重新部署代碼。
感謝
我在Weblogic 10.3.3上構建了一個web服務,我正在使用一個servlet過濾器將請求記錄到數據庫。我不希望過濾器放慢對web服務的調用。所以我其實有兩個問題。Servlet過濾器和線程?
1)過濾器,或者我可以讓過濾器做一個單獨的線程日誌記錄?如果是的話如何?
2)有沒有一種方法可以動態地打開或關閉過濾器,而無需重新部署代碼。
感謝
您可能會在這裏犯了過早的優化。如果你記錄或過濾東西會成爲一個問題,我會等到我有證據證明它,然後纔開始重新設計來修復它。
許多日誌記錄軟件都支持「異步日誌記錄」,其中日誌事件非常快速地放入隊列中,然後單獨的線程儘快將其寫入永久存儲器。這裏的缺點是,如果您的應用在事件仍然在隊列中時崩潰,則更有可能丟失消息。總體開銷也稍高,因爲你有多個線程相互協調。
此外,許多日誌記錄框架都有一個「監視配置」選項,可以定期檢查配置文件。這使您可以在「熱」系統上啓用或禁用記錄器。
你正在使用什麼日誌庫?
確實,配置文件!瓶頸可能實際上是一個未被混合的數據庫連接。至於第2點,另一個選項是運行時檢查classpath中的屬性文件。但是這也可能會放緩事情。基本上每行代碼都是如此。 – BalusC 2010-10-15 17:41:23