我刚开始使用ELMAH,并且是粉丝。我的团队支持大量的Web应用程序,令我特别激动的是ELMAH使我们能够将每个应用程序中的异常保存到同一MS SQL数据库表中。
我们还支持一些控制台,DLL和桌面应用程序。是否可以使用ELMAH DLL将这些应用程序中的异常记录到同一位置?
最佳答案
我们这里的情况完全一样。针对我们所有的Web应用程序运行ELMAH。其中一些具有基于控制台的调度程序。
在仔细研究了源代码之后,以下代码似乎可以工作:
ErrorLog errorLog = ErrorLog.GetDefault(null);
errorLog.ApplicationName = "/LM/W3SVC/1/ROOT/AppName";
errorLog.Log(new Error(ex));
上面的唯一真正的问题是,您需要将应用程序名称保留在配置中的某个位置,以便能够查看ELMAH.axd查看器上的条目。
因此,在我们的通用错误处理代码中,我们这样做:
if (HttpContext.Current != null)
ErrorSignal.FromCurrentContext().Raise(ex);
else
{
ErrorLog errorLog = ErrorLog.GetDefault(null);
errorLog.ApplicationName = ErrorHandling.Application;
errorLog.Log(new Error(ex));
}
关于.net - 在控制台应用程序中使用ELMAH,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/841451/