어떤 사람들은 log4net 대신 ELMAH를 사용하고 있습니다. 무엇이 더 나아질까요?
Stack Overflow 질문 에 대한 답변 에서 ELMAH에 대해 알게되었습니다 . C #으로 로그인하려면 어떻게해야합니까?
어떤 사람들은 log4net 대신 ELMAH를 사용하고 있습니다. 무엇이 더 나아질까요?
Stack Overflow 질문 에 대한 답변 에서 ELMAH에 대해 알게되었습니다 . C #으로 로그인하려면 어떻게해야합니까?
답변:
ELMAH는 웹 애플리케이션의 오류 및 예외를 추적하는 목적으로 사용되며 다양한 메커니즘 (SQL, RSS, Twitter, 파일, 이메일 등)을 통해 이러한 예외를 쉽게 기록하거나 볼 수 있습니다. 내장 된 예외 처리가없는 경우 ELMAH는 웹 응용 프로그램 환경에서 예외 처리 측면에서 원하는 것을 얻을 수 있습니다.
Log4net은 예외 로깅에도 사용할 수 있지만 웹 애플리케이션에 연결하려면 고유 한 핸들러를 롤링해야 할 수도 있습니다. Log4net은 범용 로깅 프레임 워크이므로 다른 유형의 정보 로깅을 수행해야하는 경우 ELMAH보다 빛납니다. Log4net은 거의 모든 .NET 응용 프로그램에서도 사용할 수 있습니다.
Log4Net 은 애플리케이션 (웹, 콘솔, dll 등) 내에서 사용하기위한 API가 포함 된 범용 로깅 프레임 워크입니다.
logger.Debug("Some low level debug message...");
logger.Info("Some basic info");
logger.Warn("Some business logic problem, but not critical");
logger.Error("An unexpected error");
ELMAH 는 웹 응용 프로그램에서 예외 를 로깅하기위한 눈에 잘 띄지 않는 IIS 플러그인 입니다. 애플리케이션 내에서 ELMAH에 대한 참조가 표시되지 않으며 상호 작용하는 API가 없습니다. 모듈 및 처리기 IIS 확장 점을 사용하여 동작을 추가합니다. 또한 웹 응용 프로그램에서 발생한 오류를 볼 수있는 웹 프런트 엔드가 있습니다. Log4Net에는 프런트 엔드가 없으며 로그 파일, syslog 서버, 데이터베이스 등으로 로그 메시지를 보낼 수있는 다양한 로그 싱크 (Appenders) 만 있습니다.
주요 차이점은 ELMAH가 처리되지 않은 응용 프로그램 예외를 기록한다는 것입니다. log4net은 사용자가 기록하는 모든 것을 기록합니다. 처리되지 않은 예외를 기록하도록 log4net을 구성 할 수 있지만 ELMAH는 즉시 사용할 수있는 다양한 유용한 정보를 캡처합니다.
ELMAH는 오류 이벤트에 연결 한 다음 로깅을 수행하는 HTTP 모듈을 생성하여 작동합니다. 이것은 잘못된 설계로 인해 쉽게 방해를받을 수 있습니다. Log4Net은 사전에 추가 작업이 필요할 수 있지만 AOP 프레임 워크를 사용하고이를 클래스 또는 어셈블리 전체에 적용하면 코드와 노력이 거의없이 훨씬 더 나은 예외 로깅을 달성 할 수 있습니다.
ELMAH는 WCF 서비스에서 달성하기 어려울 수있는 HttpContext에 대한 액세스 권한이있는 경우에만 작동합니다. 따라서 어쨌든 WCF에서 다른 로거를 사용하게 될 것입니다. 더 보편적 인 하나의 솔루션을 사용하는 것은 어떨까요?
ELMAH 는 웹 응용 프로그램에 특별히 사용되는 반면 log4net 은 웹 및 Windows 응용 프로그램 모두에서 사용됩니다. ELMAH는 웹 애플리케이션에서 log4net보다 더 많은 장점을 가지고 있습니다.