2013-11-20 43 views
0

我正在處理的當前系統通過一組文檔&執行一些使用文檔元數據的邏輯。如果一個文檔的元數據是魚腥味,它會引發異常。系統記錄異常,失敗作業&讓開發人員在繼續前查看日誌來解決問題。是否建議在數據庫中存儲堆棧跟蹤?

我想通過使系統具有容錯能力來實現這個系統,正如我所看到的那樣,通常由於文檔很少而導致作業失敗。即使出現異常,系統也會繼續。異常信息將與文檔信息一起存儲在數據庫表中。這些信息將被髮送給開發人員,然後他們可以在無需客戶等待的情況下進行修復。客戶可以稍後分別處理這些失敗的文檔。

我的問題是如何在表中存儲異常信息。該例外已經記錄在日誌文件中。我在想的一個想法是存儲異常的時間戳,以便開發人員稍後可以在日誌文件中找到時間戳並理解異常。但是這有可能會導致日誌文件被刪除。

將整個堆棧跟蹤存儲在數據庫中有意義嗎?

+1

異常就是:異常。 (預期)錯誤處理是錯誤處理。不要混淆2. –

+0

在我看來,將異常存儲在數據庫中是一種矯枉過正的行爲。記錄具有時間戳和錯誤(消息,客戶端,異常文本)的日誌文件就足夠了,速度更快。 如果你仍然想在數據庫中存儲異常,我會建議不要將它們存儲在你的應用程序的同一個數據庫中,並使其異步不會減慢你的應用程序 – user2196728

+0

這個問題應該在programmers.stackexchange.com/上,因爲它是一個面向觀點的問題。 –

回答

0

生產系統在同一數據庫或單獨的數據庫或單獨的數據庫中記錄錯誤和異常錯誤和例外情況並不少見,時間戳,用戶標識和異常和堆棧都轉換爲字符串並存儲在定義爲varchar(3000)或將存儲足夠的異常信息的值

+0

好吧,這可以討論....我不完全同意,但許多因素可以做出選擇...我會登錄一個單獨的螳螂DB來自動拋出案件(但仍然異步) – user2196728