2010-03-08 68 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(新异常( “错误文本”)));