2009-10-09 3 views
8

내 ASP.NET 프로젝트에서 오류보고를 위해 ELMAH를 사용하고 있습니다. 프로젝트를 디버깅 할 때 나는 허용 된 사용자에게 전자 메일 보고서를 보내지 않으려는 경우를 제외하고 모든 것이 잘 작동합니다. 어떻게이 업적을 달성 할 수 있습니까?web.config 및 코드 숨김에서 ELMAH를 사용하거나 사용하지 않도록 설정하는 방법은 무엇입니까?

+0

오류가 발생하면 어떻게 이메일을 보내주십시오. 오류가 발생하면 이메일을 보내기 위해 ELMAH를 사용하고 있다고 가정합니다. ELMAH에 대한 web.config 설정을 알려주십시오. –

답변

8

개발 및 프로덕션 환경에 다른 web.config 파일이 있다고 가정하면 개발 web.config에서 Elmah를 비활성화하십시오. httpModules 섹션에서 Elmah.ErrorLogModule 요소를 주석 처리 (또는 제거)해야합니다.

+2

코드 숨김에서 ELMAH를 비활성화하는 방법을 모르겠습니다. 그러나 개발 환경에서 구성 별 web.config 파일을 사용하여 해제하거나 다른 유형의 로깅을 사용할 수는 있습니다. 여기 ScottGu의 게시물을 참조하십시오. http://weblogs.asp.net/scottgu/archive/2007/09/21/tip-trick-automating-dev-qa-staging-and-production-web-config-settings-with-vs -2005.aspx –

+0

ErrorLogModule을 주석 처리하지 않습니다. 댓글 elmah 섹션에서 errorLog! http://stackoverflow.com/a/25394016/2152973 –

5

아마도 ErrorFiltering을 사용하여 Global.asax에서 이메일 로깅을 사용 중지 할 수 있습니다. 예 :

void ErrorMail_Filtering(object sender, ExceptionFilterEventArgs e) 
{ 

#if DEBUG 
    e.Dismiss(); 
#endif 

} 
0

또 다른 방법은 ErrorMail_Mailing 메서드를 사용하는 것입니다. ELMAH 이메일을 보낼 때, 그것은 먼저 실행 (존재 global.asax.cs)에

public void ErrorMail_Mailing(object sender, ErrorMailEventArgs e) 
{ 
#if DEBUG 
    e.Mail.To.Clear(); 
    e.Mail.To.Add("[email protected]"); 
    e.Mail.Subject = "Error in Development"; 
#endif 
} 

예는 상술 web.Debug.config & web.Release.config에 상기 변환을 통해 할 수있다. 그러나이 방법으로 할 수있는 일은 훨씬 더 많습니다. http://scottonwriting.net/sowblog/archive/2011/01/06/customizing-elmah-s-error-emails.aspx

관련 문제