我有一个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引用到项目中,但它仍然没有提供任何内容。
有人能指点我怎么做吗?