2017-10-23 1 views
2

try/catch에서 로깅 구문을 래핑하는 것이 맞습니까? 내가로 Log4net을 사용하고 있습니다 : (난 아직도 그 실패 스톱을 알고) 예외를 throw에서 Log4net을 방지하기 위해 또는 로깅 논리가 예외를 throw하는 경우 충돌에서 응용 프로그램을 방지하기 위해Log4Net Log Statement를 try/catch로 래핑 할 수 있습니까?

LogManager.GetLogger(type).Debug(message, exception) 

, 그것은 만드는가 try/catch에서 호출을 감싸는 감각?

try{ 
LogManager.GetLogger(type).Debug(message, exception) 
} catch(Exception e){//Some Logic Here} 

또한 excpetion이 발견 된 경우 catch 절에서 어떤 일이 발생해야하는지에 대한 권장 사항을 찾고 있습니다.

+1

log4net은 예외를 발생시키지 않습니다. "어떤 이유로 든 log4net이 잡히지 않은 예외를 throw하면 (ArgumentException과 ArgumentNullException을 제외하고) [email protected] 메일 링리스트로 전자 메일을 보내주십시오. ** 잡히지 않은 예외 즉각적인주의가 필요한 심각한 버그로 처리됩니다. ** "_ – stuartd

답변

2

Log4net은 설계 상 예외를 발생시키지 않습니다. Log4Net은 프로그램 흐름과 상호 작용하지 않도록 설계되었습니다. 잘못 될 수있는 일은 매개 변수를 형식화하는 방법에있는 버그입니다. 하지만 log4net 자체는 예외를 던져서는 안됩니다.

Log4net 자주 묻는 질문은 :

신뢰할 수있는 로깅 시스템을 log4net 있습니까? Log4net은 신뢰할 수 없습니다. 그것은 은 최선 노력과 실패 - 그만 로깅 시스템입니다. fail-stop은 이며, 실행시 log4net이 예기치 않은 예외를 throw하지 않아 잠재적으로 응용 프로그램이 중단되는 것을 의미합니다. 어떤 이유로 든 log4net이 캐치되지 않는 예외를 throw하면 [email protected] 메일 링리스트로 전자 메일을 보내주십시오. 잡히지 않은 예외 은 즉각적인주의가 필요한 심각한 버그로 처리됩니다.

관련 문제