Asp.net-Mvc
使用 NLog 記錄未處理的異常?ELMAH 和 NLog 應該一起使用嗎?
我在我的 ASP.NET MVC 項目中使用 ELMAH,我真的很喜歡它的簡單性。但是我需要能夠以 log.Info(“message”) 方式在我的程式碼中記錄某些事件。由於 ELMAH 不提供這種能力,我開始研究 NLog。
想到了幾個問題:
- 是否同時使用 ELMAH 和 NLog 過大?使用 ELMAH 處理未處理的異常,使用 NLog 處理其他所有異常?
- 是否可以將 NLog 配置為在 nlog.config 中記錄未處理的異常,或者是否需要自定義程式碼?
- 如果需要自定義程式碼,添加它的最佳位置是哪裡?MVC框架中的OnException方法?global.asax 文件?
非常感謝任何回饋。到目前為止,我還沒有找到任何關於這個問題的好文章?
實際上,您可以從 ELMAH 觸發警報。像這樣:
ErrorSignal.FromCurrentContext().Raise(new System.ApplicationException("An error occured in SendEmail()", ex));不要忘記添加對 elmah.dll 的引用並添加
using Elmah;到文件中。有關更多範例,請參見此處。
在回答第 2 個問題時,我剛剛閱讀了這篇文章,其中解釋瞭如何使用 NLog 記錄未處理的異常。基本上是在 Global.asax.cs 文件中添加如下內容:
protected void Application_Error() { Exception lastException = Server.GetLastError(); NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger(); logger.Fatal(lastException); }