2009-06-17 20 views
39

Estoy intentando que NLog inicie sesión en la tabla de registro de la base de datos, pero fue en vano. Estoy seguro de que mi cadena de conexión es correcta porque es la misma que en mi sitio web.config. Escribir en un archivo funciona bien, así que sé que no es solo NLog, sino algo que estoy haciendo mal. Debajo está mi configuración de NLog:Cómo hacer que NLog escriba en la base de datos

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

Respuesta

66

trate de poner lo siguiente en su etiqueta Nlog:

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

que podrían ayudar a determinar cuál es el problema

+10

$ {longdate} era una cadena que estaba intentando insertar en un campo de fecha y hora. Cambiarlo a $ {date} fue el truco. –

6

NLog permite registrar las partes internas del marco.

Habilite "debug level for your internal logging" para NLog y vea lo que está pasando mal.

+0

vínculo roto, pero me pareció útil esta información https://github.com/NLog/NLog/ wiki/Internal-Logging – Fuzzybear

Cuestiones relacionadas