나는 3.5에서 새로운 asp.net 사이트를보고 있는데, 오류 처리 나 로깅이 전혀 없다. 로깅 및 오류 처리를위한 좋은 옵션은 무엇입니까? Log4Net을 1.1 프레임 워크에서 사용했지만 잠재적으로 3.5에서 더 나은 옵션이 있다고 들었습니다.ASP.NET 로깅 - log4net 또는 상태 모니터링?
답변
하나의 옵션은 ELMAH입니다. 나는 여기에 그것에 대해 질문했다 : ASP.NET Error Handling.
그 이후로 약간 수정 된 버전을 구현했으며 로깅과 전자 메일은 web.config 파일을 통해 통합하기가 쉽습니다.
Enterprise Library 아마도 학습 곡선이 있지만 좋은 프로젝트입니다. Asp.Net에서
는 데이비드 헤이든의 기사 당신은 당신이 알고있는 고수, log4net하는 데 사용하는 경우 Enterprise Library 2.0 Logging Application Block따릅니다. 쉽고 빠르며 잘 작동합니다. 저는 1.1, 2.0, 3.5에서 수년 동안 사용해 왔습니다.
ASP.NET 상태 모니터링은 실제로 매우 괜찮은 작업을 즉시 수행합니다!
MSDN, How to: Send E-mail for Health Monitoring Notifications
개인적으로, 나는 log4net을 시도했지만 볼 윈폼에 대한 사양 및 예,하지만 내 조직은 보고서와 우리가 필요로하는 모든 것을보고하는 Global.asax에에서 잡힌 오류를 기록 우리 자신의 로깅 메커니즘을 코딩 havent 한 스택 추적, 세션 (있는 경우), 양식의 NVC, 응용 프로그램 버전, 쿼리 문자열에 오류가 발생한 URL 및 HTTP 헤더를 알 수 있습니다. 비록 내가 모든 오류가 거기에 기록되지는 않는다는 것을 알았지 만; 폼 인증 만료 또는 응용 프로그램 풀 다시 시작/종료 또는 IIS가보고 한 응용 프로그램 실행에 의해 발생하지 않은 모든 것.
ELMAH 예상, 수동 (디버그, 정보 및 오류) 정보
NLog을 처리 예기치 않은 예외 - :
우리는 우리의 로깅을위한 두 가지 옵션을 사용합니다.
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를 능가합니다.
- 1. ASP.NET 세션 상태 모니터링
- 2. ASP.NET 상태 모니터링 404 이벤트
- 3. log4net 사용자 정의 로깅
- 4. Log4Net 또는 로깅 응용 프로그램 블록
- 5. Log4net 중복 로깅 엔트리
- 6. Log4Net 로깅 예외
- 7. log4net - 사용자 로깅
- 8. 상태 모니터링
- 9. SSRS 및 상태 모니터링
- 10. log4net xml의 로깅 수준 변경
- 11. 웹 응용 프로그램에서 log4net 로깅
- 12. rollingFileAppender를 통해 매주 로깅 - log4net
- 13. websphere의 애플리케이션 상태 모니터링
- 14. Weblogic 상태 모니터링 기능
- 15. 동적으로 프로그램 상태 모니터링
- 16. log4net 로깅 수준을 프로그래밍 방식으로 변경하십시오.
- 17. 엔터프라이즈 로깅 블록 대 NLog 대 log4net
- 18. Log4Net 로깅 안 함 (초기화되지 않았 음)
- 19. log4net - 여러 컴퓨터에서 중앙 파일로 로깅
- 20. log4net 런타임시 디버그 로깅 사용 가능
- 21. 체크 박스의 체크 상태 모니터링
- 22. 쉘 스크립트 작업 상태 모니터링
- 23. ASP.Net 웹 팜 모니터링
- 24. WCF 웹 서비스 및 기본 ASP.NET 상태 모니터링
- 25. ASP.NET 상태 모니터링 구성, "eventName"특성에 유효한 값
- 26. .NET ASP.NET 응용 프로그램 모니터링
- 27. ASP.NET MVC 2 용 경량 로깅 라이브러리
- 28. 로깅 할 때 필드 사람들이 캡처 함 - log4net
- 29. ASP.NET 응용 프로그램 용 로깅 프레임 워크
- 30. log4Net 딜레마
어떻게 로그 페이지를 보호합니까? – Caveatrob
그건 내 "수정"의 일부였습니다. 로그 된 정보가 노출되는 것을 원하지 않았으므로 정보를 데이터베이스에 기록하고 전자 메일로 보내기 만하면됩니다. 그런 다음 전자 메일을 받으면 데이터베이스 로그를 살펴볼 수 있습니다. 나는 어쨌든 원격보기를 요구하지 않았다. – NYSystemsAnalyst
Scott Hanselman은 또한 ELMAH를 시작하고 실행하는 데 유용한 게시물을 가지고있었습니다. http://www.hanselman.com/blog/ELMAHErrorLoggingModulesAndHandlersForASPNETAndMVCToo.aspx –