c# - tutorials - Cómo hacer que NLog escriba en la base de datos
nlog tutorials (2)
Estoy intentando que NLog se registre 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. A continuación está mi configuración de 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>
Intente poner lo siguiente en su etiqueta nlog:
<nlog throwExceptions="true" internalLogFile="c:/nlog.txt" internalLogLevel="Debug" />
Eso podría ayudar a determinar cuál es el problema
NLog permite registrar las partes internas del propio marco.
Habilite el " nivel de depuración para su registro interno " para NLog y vea qué está fallando.