Como chegar NLog a gravação ao banco de dados
-
06-07-2019 - |
Pergunta
Eu estou tentando obter NLog para logar em minha tabela de log de banco de dados, mas sem sucesso. Tenho certeza que minha seqüência de conexão está correta porque é o mesmo em outros lugares utilizados no meu web.config. Escrevendo para um arquivo bem funciona, então eu sei que não é apenas NLog, mas deve ser algo que eu estou fazendo errado. Abaixo está a minha configuração 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>
Solução
Tente colocar o seguinte em seu tag nlog:
<nlog throwExceptions="true" internalLogFile="c:\nlog.txt" internalLogLevel="Debug" />
que possam ajudar a determinar qual é o problema
Outras dicas
NLog permite registrando a parte interna do próprio quadro.
Enable " de depuração para o seu registo interno" para NLog e veja o que está acontecendo de errado.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow