2009-03-16 6 views
8

나는 3.5에서 새로운 asp.net 사이트를보고 있는데, 오류 처리 나 로깅이 전혀 없다. 로깅 및 오류 처리를위한 좋은 옵션은 무엇입니까? Log4Net을 1.1 프레임 워크에서 사용했지만 잠재적으로 3.5에서 더 나은 옵션이 있다고 들었습니다.ASP.NET 로깅 - log4net 또는 상태 모니터링?

답변

8

하나의 옵션은 ELMAH입니다. 나는 여기에 그것에 대해 질문했다 : ASP.NET Error Handling.

그 이후로 약간 수정 된 버전을 구현했으며 로깅과 전자 메일은 web.config 파일을 통해 통합하기가 쉽습니다.

+0

어떻게 로그 페이지를 보호합니까? – Caveatrob

+0

그건 내 "수정"의 일부였습니다. 로그 된 정보가 노출되는 것을 원하지 않았으므로 정보를 데이터베이스에 기록하고 전자 메일로 보내기 만하면됩니다. 그런 다음 전자 메일을 받으면 데이터베이스 로그를 살펴볼 수 있습니다. 나는 어쨌든 원격보기를 요구하지 않았다. – NYSystemsAnalyst

+2

Scott Hanselman은 또한 ELMAH를 시작하고 실행하는 데 유용한 게시물을 가지고있었습니다. http://www.hanselman.com/blog/ELMAHErrorLoggingModulesAndHandlersForASPNETAndMVCToo.aspx –

4

따릅니다. 쉽고 빠르며 잘 작동합니다. 저는 1.1, 2.0, 3.5에서 수년 동안 사용해 왔습니다.

-2

개인적으로, 나는 log4net을 시도했지만 볼 윈폼에 대한 사양 및 예,하지만 내 조직은 보고서와 우리가 필요로하는 모든 것을보고하는 Global.asax에에서 잡힌 오류를 기록 우리 자신의 로깅 메커니즘을 코딩 havent 한 스택 추적, 세션 (있는 경우), 양식의 NVC, 응용 프로그램 버전, 쿼리 문자열에 오류가 발생한 URL 및 HTTP 헤더를 알 수 있습니다. 비록 내가 모든 오류가 거기에 기록되지는 않는다는 것을 알았지 만; 폼 인증 만료 또는 응용 프로그램 풀 다시 시작/종료 또는 IIS가보고 한 응용 프로그램 실행에 의해 발생하지 않은 모든 것.

ELMAH 예상, 수동 (디버그, 정보 및 오류) 정보

NLog을 처리 예기치 않은 예외 - :

6

우리는 우리의 로깅을위한 두 가지 옵션을 사용합니다.

ELMAH 자동 (발생 500 예외없는 404의 (페이지)에서) 예외를 캡처하고 이러한 오류를 시각화하는 웹 UI를 내장을 가지고 큰 아웃 - 오브 - 박스 플러그인입니다. 따라서 실제로 발생하는 오류는 예기치 않은 오류를 잡는 아주 빠르고 효과적인 방법입니다.

지금 NLog 칭찬 우리가 비 locahost 시스템에서 정보를 얻을 필요가있을 때 우리의 개발자가 수동으로 그래서, 특정 지점에서 코드에 디버깅 정보를 삽입 할 필요에 의해이, 그것은 매우 간단합니다. 예를 들어, 대부분의 메소드에서 코드를 흩어져 로컬 변수가 무엇인지 또는 반환 값 등을 확인합니다.보다 중요한 정보는 log.Info(..)을 사용합니다. 마지막으로, 우리가 갇혀 처리 한 심각한 오류의 경우 일반적으로 try/catch 범위 안에 log.Error(..) 또는 log.Warn(..)을 사용합니다. 그래서 우리의 테스트 서버 나 라이브 서버에서 많은 양의 데이터, 라이브 또는 잡는 것이 필요하다면 모든 로깅 상태 (예 : Debug 이상)를 켜거나 Info 이상의 상태와 같은 일반적인 중요한 정보를 켭니다. 항상 Warn, Error and Fatal 상태가 항상 있습니다. 디버그 상태는 많은 양의 데이터를 생성하므로 우리는이 데이터를 드물게 사용합니다.

요약하면 웹 애플리케이션에 두 가지 접근 방식을 사용하는 것이 좋습니다. Elmer for excellent 예기치 않은 오류 트래핑 및 NLog 에 대한 정보 및 오류.

마지막으로 NLog는 Log4Net보다 WAAAY를 사용하기 쉽고 작동하기 쉽습니다. 기본적으로 IMO를 능가합니다.