2014-03-27 7 views
2

저는 Microsoft Enterprise Library에 비교적 익숙합니다. 나는 현재 Enterprise Library 5를 사용하여 시스템이 텍스트 파일에 던져 놓은 예외에 대한 로깅을 탐색합니다.엔터프라이즈 라이브러리를 사용하여 예외 처리 로깅

질문 1

내가 Microsoft.Practices.EnterpriseLibrary.LoggingLogEntry 우연히 만났다는 ErrorMessagesMessage와 함께 제공됩니다.

어떤 상황에서 ErrorMessages 또는 Message을 사용해야하는지 설명 할 수 있기를 바랍니다. 나는이 두 변수에 대한 정의를 지금은 찾을 수 없습니다.

예외가 발견되면 ex.MessageErrorMessages 또는 Message에 할당해야합니까?


질문 2

또한 Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Logging이 있다는 것을 알게되었습니다. 이것이 Microsoft.Practices.EnterpriseLibrary.Logging 대신에 예외를 기록하는 더 적절한 방법인지 알 수 있습니까?

답변

2

귀하의 목적이 예외 처리/로그 인 경우 예외 처리 블록 (Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Logging 일부 임)을 사용해야합니다. EH 블록을 사용하면 다양한 유형의 예외를 처리하는 방법을 구성하고 예외 범주를 만들 수 있습니다. 당신이 예외를 처리해야하는 경우 그런 다음, 당신은 간단한 필요성을 호출 :

ExceptionPolicy.HandleException(ex, <NameOfPolicy>); 

라이브러리는 올바른 리스너에 출력 라우팅, 나머지를 다룰 것이다.

또한 EH 블록에는 폴백 (fall-back) 로깅 기능이 내장되어 있습니다. 데이터베이스에 로그인하려고하는데 데이터베이스에 연결할 수 없다고 가정 해 봅시다. 대체 (Windows Eventing 시스템을 사용하는 상자에서 제외) 및 로그를 만들 수없고 원래 예외가 대체 시스템에 기록된다는 사실을 사용하여 EH 블록을 구성 할 수 있습니다.

0

첫 번째 질문은 주로 Message을 사용하고 ErrorMessages은 추가 정보입니다. 두 번째 질문에 대한 EntLib ErrorMessages

: 그것은 Microsoft.Practices.EnterpriseLibrary.Logging의 꼭대기에 앉아

Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Logging 

, 그것은 주로 로그 준비 때문에 예외를 기록하는 데 사용 될 문자열의 형식은 선택 사항이며 로깅 전략에 따라 달라집니다. 예를 들어, 모든 것을 기록하려면 Microsoft.Practices.EnterpriseLibrary.Logging을 사용합니다. 최소한의 외부 참조로 작업하는 것이 더 좋으며 두 가지 차이점은 그리 많지 않습니다. LoggingExceptionHandler

1

너무 늦을 수는 있지만 경우에 따라 도움이 될 수 있습니다.

오류를 기록하려면 직접 Microsoft.Practices.EnterpriseLibrary.Logging을 사용하면 안됩니다. 일반 정보 로깅에만 사용해야합니다.

오류 처리 및 오류 로깅의 경우 Microsoft.Practices.EnterpriseLibrary.ExceptionHandling 및을 사용하고 로깅 정책 중 하나를 사용하여 오류를 기록하도록 구성하십시오. 로그에 기록되는 내용은 포맷터가 구성되는 방식에 따라 다르며 기록되는 위치는 사용자에 따라 다릅니다.