2017-05-04 8 views
0

나는 참조한 클래스 라이브러리에서 메서드를 호출하는 ASP.NET 4.5 웹 응용 프로그램 (IIS 7.5에서 실행)이 있습니다. 처리되지 않은 예외가있을 때 로그에 ELMAH를 추가하려고합니다. ELMAH를 NuGet과 함께 설치했습니다. 그것은 위대한 작품. 문제는 클래스 라이브러리에서 오는 예외를 기록하지 않으며 웹 응용 프로그램에서 오는 예외 만 기록한다는 것입니다. 클래스 라이브러리가있는 ASP.NET 웹 응용 프로그램에서 ELMAH 사용

나는 나의 클래스 라이브러리에서 시도 캐치를 추가하는 시도와 함께 수동으로 예외를 기록하려고 :

ErrorSignal.FromCurrentContext().Raise(e); 

그러나 이것은 아무것도하지 않습니다.

웹 응용 프로그램과 클래스 라이브러리 모두에 ELMAH를 설치하고 참조해야합니까? 그리고 web.config는 클래스 라이브러리가 사용할 핸들러와 모듈을 알기에 충분할 것입니까? 또는 클래스 라이브러리에 다른 구성을 추가해야합니까?

나는 웹 응용 프로그램 및 클래스 라이브러리 모두가 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를 사용할 수 없습니다. 나는 HttpContext 대신에 null을 사용하려했지만 어느 쪽도 도움이되지 않았다.

+0

ELMAH를 참조해야하는 클래스 라이브러리에서 ErrorLog.GetDefault (null) .Log (새 오류 (errExc))를 시도해보십시오. – ThomasArdal

답변

0

온라인 검색 중에 ELMAH가 웹 앱에서 오는 항목 만 기록한다는 사실을 알았습니다. NLog를 설치하거나 System.Diagnostic.Trace를 사용하여 클래스 라이브러리에서 들어오는 항목을 로깅 할 수있었습니다.

아마 이것에 대해 잘못되었습니다. ELMAH 및 클래스 라이브러리에 대한 더 많은 경험이 있다면, 공유하십시오.

감사합니다.