2010-03-08 65 views
9

我們正在使用ELMAH來記錄非常棒的web應用程序異常。我們也想知道如何定製ELMAH來記錄Windows服務異常。針對Windows服務的ELMAH錯誤日誌記錄

我對使用其他應用程序僅記錄Windows服務異常不感興趣。

任何幫助,將不勝感激。

回答

12

我以前做過。我通過從ErrorSignal.FromCurrentContext()開始挖掘源代碼來找到要使用的代碼。方法。

這個目前只記錄到數據庫(因爲這是我所需要的),但有一點點調查,你可以編寫一個包裝方法,記錄你在配置文件中設置的任何東西。

try 
{ 

Elmah.SqlErrorLog ErrorLog = new Elmah.SqlErrorLog(ConfigurationManager.ConnectionStrings["Default"].ConnectionString); 

ErrorLog.ApplicationName = "AppName"; 

ErrorLog.Log(new Elmah.Error(new Exception("example"))); 

} 
catch (Exception ex) 
{ 
    //catch sql error 
} 

在我的服務我做出了錯誤日誌變量,很容易從服務項目訪問的公共單獨的對象。

+1

看起來你也可以通過使用ConfigurationManager.GetConfigurationSection(「elmah/errorLog」)來重新使用elmah config部分,並將結果(作爲IDictionary)提供給構造函數以代替連接字符串。 – smaglio81 2011-08-01 05:58:45

0

你可以用它

Elmah.ErrorLog.GetDefault(空).LOG(新Elmah.Error(新異常( 「錯誤文本」)));