2017-05-04 12 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和類庫有更多的經驗,請分享。

謝謝!

相關問題