2016-11-11 40 views
0

我有有型號,數據訪問,業務和視圖層的MVC項目。我打算使用NLog將例外記錄到文本文件中。我不確定在哪一層我應該記錄錯誤,這是我的第一個問題。我閱讀了一些建議在視圖層中記錄錯誤的博客。我不確定這一點。在這層,我應該怎麼做日誌記錄MVC有許多層

+0

如果你所希望做的是捕獲並記錄異常,使用ELMAH。 https://www.nuget.org/packages/elmah/ – Fran

+0

我不認爲這有一個單一的可靠答案。所有你會得到的是意見。 – Amy

回答

1

我認爲最好的方法是使用MVC。你應該在一個地方記錄常見的異常,你得到的唯一常見的地方是頂級MVC。

有對於MVC特殊的錯誤處理,你應該利用/覆蓋,以獲得您想要的MVC之外的東西+ Global.asax的一般錯誤處理程序的行爲。這將覆蓋任何層次發生的異常,而不是在其他地方進行復制。

正如你可以使用ELMAH以及意見已經提到。它幾乎可以完成我所描述的內容,但自動地,您只需添加一個Elmah.Mvc包並將其設置爲登錄到文件。您需要小心不要暴露elmah端點,以便每個人都可以看到您的日誌。

+1

我同意所有這一切。我還想補充一點,你不想亂扔你的代碼,一堆try/catch塊就是各種各樣的圖層,只是爲了捕獲異常來記錄它們。此外,這是不要自己寫這些東西。那裏有足夠的軟件包elmah,企業庫和Exception Manangment Block。專注於用您的代碼創造商業價值。 – Fran

+1

以爲它是一種很明顯,如果你有一個頂層,你並不需要嘗試/捕捉無處不在,但你是對的,曾與人的思維的try/catch {}這麼多的麻煩是一個很酷的想法,並把它放在所有地方。 –

相關問題