Windows服务的ELMAH错误日志记录

Gab*_*sai 9 windows-services elmah

我们使用ELMAH来记录Web应用程序异常,它非常有用!此外,我们想知道如何自定义ELMAH以记录Windows服务异常.

我对使用另一个应用程序仅记录Windows服务异常不感兴趣.

任何帮助,将不胜感激.

Kei*_*h K 12

我之前做过这个.我通过挖掘从ErrorSignal.FromCurrentContext()开始的源代码找到了要使用的代码.Raise(ex); 方法.

这当前只记录到数据库(就像我需要的那样),但是通过更多的调查,您可以编写一个包装方法,记录到您在配置文件中设置的任何内容.

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
}
Run Code Online (Sandbox Code Playgroud)

在我的服务中,我使ErrorLog变量成为一个公共单例对象,可以从服务项目中轻松访问.