链接库中的Elmah日志记录(dll)

时间:2015-11-18 23:47:46

标签: c# asp.net-mvc logging dll elmah

我有一个MVC Web应用程序,我已成功配置该Web应用程序的日志记录。但是,我的部分代码位于另一个项目中,作为库链接。这是我的困惑开始的地方。不知何故,无论出于什么原因我都不知道,图书馆的例外根本就没有被调用。

这是我的项目结构。我有一个Common项目,编译为库,包含一个如下的帮助方法:

public static void LogError(Exception ex, string contextualMessage = null) {
    if (HttpContext.Current != null)
    {
        var annotatedException = ex;
        if (ex == null)
        {
            annotatedException = new Exception(contextualMessage);
        }
        else if (contextualMessage != null)
        {
            annotatedException = new Exception(contextualMessage, ex);
        }
        ErrorSignal.FromCurrentContext().Raise(annotatedException);
        ErrorLog.GetDefault(null).Log(new Error(annotatedException));
    }
    else
    {
        if (ex == null)
        {
            ex = new Exception(contextualMessage);
        }
        ErrorLog errorLog = ErrorLog.GetDefault(null);
        errorLog.ApplicationName = "Generic Library";
        errorLog.Log(new Error(ex));
    }
}

然后,我有另一个库,让我们说DataAbstraction,它会有一个类似于此的调用:

try {
    // do something
} catch(Exception ex) {
    CommonHelper.LogError(ex);
}

现在,每当我直接从MVC Web应用程序使用helper方法时,它都会成功记录,但是当我从DataAbstraction项目调用它时,没有任何记录,但一切仍然正常运行。

我尝试将DataAbstraction项目的app.config配置为也有Elmah配置,并且还将elmah dll引用到项目中,但它仍然没有提供任何内容。

有人能指点我怎么做吗?

0 个答案:

没有答案