2017-05-04 30 views
0

我有一个ASP.NET 4.5 Web应用程序(在IIS 7.5上运行),它从我引用的类库中调用方法。 当我有未处理的异常时,我想添加ELMAH来记录日志。 我已经使用NuGet安装了ELMAH。它效果很好。 问题是,它不记录来自类库的任何异常,它只记录来自Web应用程序的异常。在带有类库的ASP.NET WebApp中使用ELMAH

我想在我的类库添加一个尝试捕捉,并试图用手动登录异常:

ErrorSignal.FromCurrentContext().Raise(e); 

但是,这并不做任何事情。

我是否必须在Web应用程序和类库上安装和引用ELMAH? web.config是否足以让类库知道要使用哪些处理程序和模块?或者我需要在类库中添加另一个配置?

我注意到,这两个Web应用程序和类库有packages.config但它只包含:

<?xml version="1.0" encoding="utf-8"?> 
<packages> 
    <package id="elmah" version="1.2.2" targetFramework="net45" /> 
    <package id="elmah.corelibrary" version="1.2.2" targetFramework="net45" /> 
</packages> 

我发现有很多网页上有关此主题的计算器,但无法找到,对于问题的解答我。

有人使用

ErrorLog.GetDefault(HttpContext).Log(new Error(errExc)); 

建议,但HttpContext的不可用。我尝试使用null而不是HttpContext,但它也没有帮助。

+0

从您的类库中获取ErrorLog.GetDefault(null).Log(new Error(errExc)),该类库也需要引用ELMAH。 – ThomasArdal

回答

0

在线搜索时,我发现ELMAH只记录来自Web应用程序的内容。通过安装NLog或使用System.Diagnostic.Trace,我可以记录来自类库的内容。

也许我错了,所以如果有人对ELMAH和类库有更多的经验,请分享。

谢谢!