關於如何安裝elmah,可參考Introductory article by Simone Busoli、Logging Error Details with ELMAH及ELMAH - Error Logging Modules And Handlers三篇文章,以下為試用後的一些心得
1.安裝後要記得將<security allowRemoteAccess="0" />裡的值設成0或false,非必要的話請避免透過遠端電腦瀏覽log,設定好後遠端讀取elmah.axd就會得到以下頁面
2.如果有使用表單驗証功能,記得要將elmah.axd開放給所有使用者(或拒絕匿名),但記得要設定allowRemoteAcess為0,這樣就可以拒絕遠端瀏覽elmah.axd但可以在本機瀏覽
3.使用email寄送log時,記得加入<add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" />於<httpModules>區段中,以免收不到信,又看不到elmah有信件寄送不出去的error log
4.使用email寄送log用的<errorMail>區段中有一項屬性noYsoad。將它設為false時,則寄送的郵件中會有一html格式的附件檔,內容為exception發生時的黃色畫面內容;設為true則不含此附件
5.elmah可以將log匯出成csv格式,不過測試後發現中文會變成亂碼
6.elmah提供XML格式的log檔,只需加入<errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="..." />區段,並設定logPath;logPath需為一已存在的絕對路徑(如D:\Logs)或相對路徑(如~/Logs/elmah),否則elmah會出現找不到路徑的錯誤訊息
7.elmah提供的範例設定會將elmah.axd放在應用程式根目錄下,但我們不會想要讓人家知道我們把這log位址放在哪,可以參考Securely Implement ELMAH For Plug And Play Error Logging一文及其討論串,變更elmah.axd路徑並做一些安全性設定的動作(如使用角色權限權管理)
8.當程式碼中有以try-catch攔劫例外時,則elmah不會將例外log起來
9.若要在thread中使用elmah請參考http://stackoverflow.com/questions/841451/using-elmah-in-a-console-application
Last updated: 2011/02/18
No comments:
Post a Comment