2009-06-17 9 views
39

Próbuję uzyskać NLog zalogować się do mojej tabeli dziennika bazy danych, ale bez skutku. Jestem pewien, że mój ciąg połączenia jest poprawny, ponieważ jest taki sam jak w innym miejscu w moim pliku web.config. Pisanie do pliku działa dobrze, więc wiem, że to nie tylko NLog, ale musi być coś, co robię źle. Poniżej znajduje się moja konfiguracja NLog:Jak uzyskać NLog, aby pisać do bazy danych

<!-- 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> 

Odpowiedz

66

spróbuj umieścić następujące w nlog tagu:

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

To może pomóc ustalić, na czym polega problem

+10

$ {longdate} był ciągiem, który próbowałem wstawić do pola datetime. Zmiana na $ {date} załatwiła sprawę. –

6

NLog pozwala na zalogowanie się do wnętrza samego szkieletu.

Włącz "debug level for your internal logging" dla NLog i zobacz, co się dzieje źle.

+0

martwy link ale okazało się pomocne https://github.com/NLog/NLog/ wiki/Internal-Logging – Fuzzybear

Powiązane problemy