2017-02-04 3 views
0

나는 log4net을 사용하여 SQL Server 데이터베이스에 오류를 기록합니다. 그것은 잘 작동하지만 한 가지 문제가 있습니다. 데이터베이스의 로그 테이블에는 Exception이라는 열이 있으며이 열은 채워지지 않지만 다른 모든 열은 채 웁니다. 내 구성이 설정되어 있습니다. 아무도 왜 이런 일이 일어나야하는지 알려 줄 수 없습니까?SQL 서버 데이터베이스에 log4net 로깅

try{ 
    throw new Exception(); 
catch (Exception ex){ 
    _log.Error("error msg", ex); 
} 

: 여기

는 오류 열을 채우려는 경우, log.Error 메소드에 인자로 예외를 줄 필요가

commandText value="INSERT INTO Log ([Date], [Thread], [Level], [Logger],[Message], [Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)" /> 
+0

예외는 어떻게 기록됩니까? 'void Error (Object message, Exception exception) '메쏘드를 사용하고 있는지 확인해야합니다. – sgmoore

+0

this._log.ErrorFormat (예 : 메시지); – user2347338

답변

0

web.config 파일에서의 CommandText 섹션입니다 ILog interface

오류 (개체) 오류 수준이있는 메시지 개체를 기록합니다. 엘.

오류 (개체 예외)는 매개 변수로 전달 된 예외의 스택 트레이스를 포함하여 오류 수준 메시지 오브젝트 로그 .

ErrorFormat (String, Object) 오류 수준이 지정된 메시지 문자열을 기록합니다.

ErrorFormat (String, Object []) 오류 수준의 서식이 지정된 메시지 문자열 을 기록합니다.

ErrorFormat (IFormatProvider, String, Object []) 오류 수준의 형식이 지정된 메시지 문자열을 기록합니다.

ErrorFormat (String, Object, Object) 오류 수준이있는 형식의 메시지 문자열을 기록합니다.

ErrorFormat (String, Object, Object, Object) 형식이 지정된 오류 수준의 메시지 문자열을 기록합니다.

0

당신은 즉

void Error(Object message,Exception exception) 

당신이 this._log.ErrorFormat(ex.Message)를 사용하는 것처럼, 당신은 예외를 전달하는 것이 아니라, 문자열 log4net에 관해서는 단지 메시지, 올바른 오버로드를 사용해야합니다.

관련 문제