【问题标题】:ELMAH error logging for Windows ServiceWindows 服务的 ELMAH 错误日志记录
【发布时间】:2010-03-08 14:08:52
【问题描述】:

我们正在使用 ELMAH 记录 Web 应用程序异常,效果很好!。我们也想知道如何自定义 ELMAH 来记录 windows 服务异常。

我对使用其他应用程序仅记录 Windows 服务异常不感兴趣。

任何帮助将不胜感激。

【问题讨论】:

    标签: windows-services elmah


    【解决方案1】:

    我以前做过这个。我通过挖掘从 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
    }
    

    在我的服务中,我将 ErrorLog 变量设置为一个公共的单例对象,可以轻松地从服务项目中访问。

    【讨论】:

    • 看起来您还可以通过使用 ConfigurationManager.GetConfigurationSection("elmah/errorLog") 重新使用 elmah 配置部分,并将结果(作为 IDictionary)提供给构造函数来代替连接字符串。
    【解决方案2】:

    你可以使用它

    Elmah.ErrorLog.GetDefault(null).Log(new Elmah.Error(new Exception("Error text")));

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-28
      • 2014-10-16
      • 2014-07-25
      • 1970-01-01
      • 1970-01-01
      • 2019-04-13
      • 2010-09-18
      • 1970-01-01
      相关资源
      最近更新 更多