2009-06-17 5 views
39

NLog에서 데이터베이스 로그 테이블에 로그하려고하지만 아무런 문제가 없습니다. 내 web.config의 다른 곳에서 사용 된 것과 똑같기 때문에 연결 문자열이 정확하다고 확신합니다. 파일에 쓰기 작업이 정상적으로 작동하므로 NLog가 아니라는 것을 알았지 만 잘못하고있는 것이 틀림 없습니다. NLog 구성은 다음과 같습니다.NLog에서 데이터베이스에 쓰는 방법

<!-- NLOG CONFIGURATION --> 
    <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <targets> 
     <target name="file" xsi:type="File" fileName="${basedir}/logs/Log ${shortdate}.txt" layout="${longdate} ${callsite} ${level}: ${message} ${exception:format=Message,StackTrace} ${stacktrace}" /> 
     <target type="Database" name="database" connectionstring="MyConnectionString"> 
     <commandText> 
      insert into MyLog ([CreateDate], [Origin], [LogLevel], [Message], [Exception], [StackTrace]) values (@createDate, @origin, @logLevel, @message, @exception, @stackTrace); 
     </commandText> 
     <parameter name="@createDate" layout="${longdate}"/> 
     <parameter name="@origin" layout="${callsite}"/> 
     <parameter name="@logLevel" layout="${level}"/> 
     <parameter name="@message" layout="${message}"/> 
     <parameter name="@exception" layout="${exception:format=Message,StackTrace}"/> 
     <parameter name="@stackTrace" layout="${stacktrace}"/> 
     </target> 
    </targets> 
    <rules> 
     <logger name="*" writeTo="file"/> 
     <logger name="*" appendTo="database"/> 
     <!--<logger name="*" writeTo="mail" minlevel="Error"/>--> 
    </rules> 
    </nlog> 

답변

66

시도가 :하지만 문제가

+10

$ {longdate}은 (는) datetime 필드에 삽입하려고 시도한 문자열입니다. $ {date} (으)로 변경하면 트릭을 수행했습니다. –

6

NLog는 프레임 워크 자체의 내부 로깅을 허용합니다.

NLog에 "debug level for your internal logging"을 사용하도록 설정하고 잘못된 점을 확인하십시오. 퍼팅 귀하의 nlog 태그에 다음

+0

죽은 링크가 무엇인지 결정하는 데 도움이 될

<nlog throwExceptions="true" internalLogFile="c:\nlog.txt" internalLogLevel="Debug" /> 

내가 도움이되었다고 투표하셨습니다 https://github.com/NLog/NLog/ wiki/Internal-Logging – Fuzzybear

관련 문제