2014-03-31 2 views
1

내 ASP.NET 웹 API 프로젝트에서 일부 호출 관련 세부 정보를 데이터베이스에 기록하고 싶습니다.NLog를 사용하여 다중 열 데이터베이스에 로깅 하시겠습니까?

특히, 요청한 API 버전과 실제 로그를 작성하고 싶습니다.

public void CustomDebug(Logger logger, String message) 
{ 
    LogEventInfo theEvent = new LogEventInfo(LogLevel.Debug, logger.Name, message); 
    theEvent.Properties["asdf"] = "hardCoded"; 

    logger.Log(theEvent); 
} 

,하지만 난 그렇게 할 때, 내 ApiLogs 데이터베이스는 다음과 같습니다 :이와

<commandText> 
    INSERT INTO ApiLogs(EventDateTime, EventLevel, EventMessage, ControllerName) VALUES (@EventDateTime, @EventLevel, @EventMessage, @ControllerName) 
</commandText> 

<parameter name="@EventDateTime" layout="${date:s}" /> 
<parameter name="@EventLevel" layout="${level}" /> 
<parameter name="@EventMessage" layout="${message}" /> 
<parameter name="@ControllerName" layout="${event-context:item=asdf}" /> 

:

나는 이것을 시도

하드
ApiLogGuid        EventDateTime   EventLevel EventMessage                              ControllerName 
8EC7AB18-FDB8-E311-8628-00188B35784D 2014-03-31 13:51:34.000 Info  DocumentType: W2  
8FC7AB18-FDB8-E311-8628-00188B35784D 2014-03-31 13:51:35.000 Debug  TESTING CUSTOM DEBUG  
D664ED50-FDB8-E311-8628-00188B35784D 2014-03-31 13:53:08.000 Info  DocumentType: W2  
D764ED50-FDB8-E311-8628-00188B35784D 2014-03-31 13:53:09.000 Debug  TESTING CUSTOM DEBUG  
CEA78D9A-FDB8-E311-8628-00188B35784D 2014-03-31 13:55:11.000 Info  DocumentType: W2  
CFA78D9A-FDB8-E311-8628-00188B35784D 2014-03-31 13:55:14.000 Debug  Log Event: Logger='API.Controllers.v1.DocumentsController' Level=Debug Message='TESTING CUSTOM DEBUG' SequenceID=2 
D0CB0C9E-00B9-E311-8628-00188B35784D 2014-03-31 14:16:45.000 Debug  Log Event: Logger='API.Controllers.v1.DocumentsController' Level=Debug Message='testing' SequenceID=1 
D1CB0C9E-00B9-E311-8628-00188B35784D 2014-03-31 14:16:46.000 Info  DocumentType: W2  
D2CB0C9E-00B9-E311-8628-00188B35784D 2014-03-31 14:16:47.000 Debug  Log Event: Logger='API.Controllers.v1.DocumentsController' Level=Debug Message='TESTING CUSTOM DEBUG' SequenceID=4 

하는 쇼에 여기,하지만 그 마지막 열에는 아무것도 없습니다.

답변

0

이 문제가 해결되었습니다. 대신

<parameter name="@ControllerName" layout="${event-context:item=asdf}" />

<parameter name="@ControllerName" layout="${event-context:asdf}" />

내가 필요한 모든이었다. 마침내!

관련 문제