2018年10月13日 星期六

使用Elmah 紀錄系統例外錯誤

一般系統上線後,很難針對系統發生的問題來偵錯,尤其是後端的程式更是如此,所以希望能更有效的方法來找出錯誤,故使用 elmah 是其中一種方法。

 

使用 nuget 下載 (會自動載 elmah.coreibrary)
1
觀察web.config 相關預設設定
image
安裝好後重新編譯專案,接著可以打以下網址來看網站有哪些錯誤:localhost:port/elmah.axd
image
由於 elmah 對於站台任何例外都會紀錄,所以沒有加入favicon 會一直被紀錄,故建議可以排除
image
錯誤訊息預設會放在 ~/App_Data/Elmah.Errors 資料夾下面,可在 web.config 找到相關設定;但是因為這個路徑容易被猜到,建議開發時使用即可,上正式機或對外IP 需要拿掉
image
使用 mail 寄送錯誤訊息,在config 加入相關設定即可寄信(使用gmail 示範),但若是內部站台可能需要注意相關 port 號的開通
image
若使用公司gmail ,會遇到一些安全性問題,可以參考相關設定
image
image

若mail 不想接收到 404 相關的錯誤資訊,可以在 global.aszs.cs 加入以下程式
image

Elmah 也支援資料庫紀錄,只是需要注意若使用sql,就無法使用 xml 的方式,兩者只能擇一
image
到 nuget 下載 elmah sqlserver
image
安裝完成後,打開 App_Readme 資料夾,可以看到 Elmah.SqlServer.sql 檔案,複製其內容語法,可以建立對應資料庫與資料表
image
image
提醒:由於資料表欄位(TimeUtc)時間不是本地的,若要觀看,需轉換成本地時間,可以使用下面語法來調整
image
資料庫的相關參數值同樣也是寫在 web.config 檔,一定要修改
image


參考
ASP.NET保安系列- 關於elmah.axd的安全設定-黑暗執行緒
ASP.NET MVC + ELMAH 監控並記錄你的網站錯誤資訊1
ASP.NET MVC + ELMAH 監控並記錄你的網站錯誤資訊2
ASP.NET MVC + ELMAH 監控並記錄你的網站錯誤資訊3
ASP.NET MVC + ELMAH 監控並記錄你的網站錯誤資訊4




沒有留言:

張貼留言