2014-11-27 1 views
0

내가 정확히 무엇을 기록해야하는지 궁금합니다. 내 말은, 예외를 기록 할 수 있고 이것은 꽤 표준이지만 다른 것들을 기록하기 위해 엘마를 사용할 수 있습니까?엘마와 함께 예외를 초과하여 기록해야합니까?

저는 실제로 많은 시도 블록을 사용하지 않습니다. 필자는 성능이 저하 될 수 있기 때문에 "표준 동작"이 아닌 특수한 경우에만 사용해야한다고 읽었습니다.

일반적으로 간단한 if 절을 사용하여 예외가 발생하는 것을 방지합니다.

int z; 
if(y!=0) 
{ 
    z = x/y; 
} 
else 
{ 
    z=0; 
} 

지금이 나를 위해 완벽하게 허용 다음과 같이 간단한 부문의 예를 들어

int z = x/y; 

0으로 나는 이것을 작성합니다.

나는이 예외로 간주하지 않습니다하지만 여전히 ... 나는 어딘가에 Y 매개 변수가 ELMAH를 사용하여이 정보를 기록 확인입니다 0

같은지 알고 싶습니다? 아니면 다른 것을 사용해야합니까?

답변

1

elmah를 사용하여 수동으로 쉽게 기록 할 수 있습니다. 그냥 전화 : 사용자 지정 메시지

ErrorSignal.FromCurrentContext().Raise(new Exception()); 

그냥 실행

var customEx = new Exception("Hey y!=0!!!"); 
ErrorSignal.FromCurrentContext().Raise(customEx); 

또한 당신은 또한 도우미를 할 수

+0

예 나는 그것을 할 수있는 방법을 알고 있습니다. 질문은 다릅니다 :) - 내가 제시 한 시나리오에 대해 자주 그렇게 할 수 있습니까? 그것은 성능 등에 영향을 미칩니다 ... –

+1

로깅입니다, 그것은 예외 처리가 아니므로, 매우 빠르며 성능 문제가되어서는 안됩니다. 나는 시나리오가 정말 큰 볼륨의 데이터를 테스트해야하고 아무런 문제가 없었습니다. –

1

펜더 ELMAH를 더 복잡 로깅 log4net 또는 nlog를 사용하고 사용하도록 결정할 수 있습니다 자신의 오류를 기록하는 방법 :

public static void OwnError(Exception e, String myMsg) 
{ 
    var exception = new Exception(myMsg, e); 
    Elmah.ErrorSignal.FromCurrentContext().Raise(exception);  
}