2011-03-19 2 views
4

예를 들어 오류 로그 저장을 위해 사용자 정의 된 공급자를 작성하려면 어떻게해야합니까? 창 이벤트 뷰어에 공급자.elmah 사용자 정의 된 공급자 및 노출 된 이벤트

지금까지는 가능하지 않은 경우, 내가 오버라이드 할 수있는 노출 된 이벤트가 있는지 궁금해서 코드를 삽입하고 예외를 얻고 원하는대로 수행하십시오.

나는 Global.asax에서 재정의 할 수있는 몇 가지 이벤트가 있음을 알고 있습니다. like for filtering :

void ErrorLog_Filtering(object sender, ExceptionFilterEventArgs e) 
{ 
} 
void ErrorMail_Filtering(object sender, ExceptionFilterEventArgs) 
{ 
} 

더 있습니까? 이 사건들의 목록을 어디에서 찾을 수 있습니까?

답변

6

Elmah 이벤트 로그 공급자를 만드는 방법에 대한 정보는 이벤트 로그에 오류 정보를 저장하고 ELMAH UI를 사용하려는 경우에는 좋지 않습니다. related question는이 주제에 대한 마태 복음 Daugherty에서 훌륭한 답이 있습니다

ELMAH 오류 로그 클래스입니다하지 쓰기 전용; 또한 데이터를 읽음으로써 ELMAH 웹 인터페이스에 표시 될 수 있습니다. 또한 ELMAH는 단지 예외 정보를 기록합니다. 또한 변수, 양식 모음 및 서버에 노란색 화면을 재생성하는 데 필요한 정보를 기록합니다. 당신이 이벤트에이 모든 정보가 로그 기록했다하더라도 경우는 , 을 같은 일반 텍스트를 읽기 어려울 다시 에서 ELMAH 웹 인터페이스를 사용할 수있는 방법을 읽기 매우 어렵다. 그렇지 않다면 ELMAH 웹 인터페이스 을 사용하려고하면 분명히 문제가되지 않습니다. 당신은 오류 로그를 서브 할 수있는 사용자 정의 로깅 제공자를 만들고은 GetError를 대체하기 위해

(ID로 하나의 오류 도착하며 ELMAH UI에서 사용)를 GetErrors (목록 페이지의 모든 오류하며 ELMAH에서 사용 UI) 및 로그 (새로운 오류 기록) 메소드를 사용하여 고유 한 저장 메커니즘을 제공합니다. 사용자 정의 ErrorLog를 구현하는 방법에 대한 설명은 this article을 참조하십시오.

그런 다음 설정에 새 오류 로그 공급자를 등록 :

<elmah> 
    <errorLog type="MyNamespace.MyErrorLog, MyAssemblyName"/> 
</elmah> 

을 이벤트에 대해서, 그들은 ELMAH 모듈에 의해 방출된다. ErrorLogModule에는 Logged와 Filtering의 두 가지 이벤트가 있습니다. ErrorMailModule에는 Filtering, Mailing, Mailed 및 DisposingMail의 네 가지 이벤트가 있습니다.

+0

대단히 내 질문에 대한 답변입니다. – Zhongmin