NLog mySQL数据库作为目标配置

时间:2012-10-23 01:41:04

标签: mysql nlog

我正在使用带有MYsql的Nlog作为目标数据库。

我的配置如下:

    <target name="databaselog" type="Database" keepConnection="true" 
       useTransactions="false"
       dbProvider="MySql.Data.MySqlClient"
       connectionString="Server=localhost;Database=****;User ID=****;Password=****;Connect Timeout=5;"
       commandText=" insert into logs(time_stamp,logger,message,log_level) Values(@TIME_STAMP,@LOGGER,@MESSAGE,@LOGLEVEL)">
  <parameter name="@TIME_STAMP" layout="${longdate}"/>
  <parameter name="@LOGGER" layout="${logger}"/>
  <parameter name="@MESSAGE" layout="${message}"/>
  <parameter name="@LOGLEVEL" layout="${level:uppercase=true}"/>
</target>

仍然无法在MYSql DB中插入信息或任何级别的消息。

有人可以帮帮我吗?

再见,我也试过命令文本

insert into logs(time_stamp,logger,message,log_level) Values(?,?,?,?)

但无法在mysql db中插入数据。

2 个答案:

答案 0 :(得分:3)

来自NLog docs

  

NLog旨在吞噬可能因日志记录而导致的运行时异常。以下设置可以更改此行为和/或重定向这些消息。

     
      
  • &lt; nlog throwExceptions =“true”/&gt; - 在配置文件中添加throwExceptions属性会导致NLog停止屏蔽异常并将其传递给调用应用程序。此属性在部署时非常有用,可以快速找到任何问题。一旦应用程序正确配置为运行,建议将throwExceptions设置为“false”,以便任何意外的日志记录问题都不会使应用程序崩溃。
  •   
  • &lt; nlog internalLogFile =“file.txt”/&gt; - 添加internalLogFile会导致NLog将其内部调试消息写入指定文件。这包括在记录期间可能抛出的任何异常。
  •   
  • &lt; nlog internalLogLevel =“Trace | Debug | Info | Warn | Error | Fatal”/&gt; - 确定内部日志级别。级别越高,内部日志输出的详细程度就越低。
  •   
  • &lt; nlog internalLogToConsole =“false | true”/&gt; - 确定是否将内部日志消息发送到控制台。
  •   
  • &lt; nlog internalLogToConsoleError =“false | true”/&gt; - 确定是否将内部日志记录消息发送到控制台错误输出(stderr)。
  •   

答案 1 :(得分:-1)

右键单击NLog配置文件。将值设置为“复制到输出目录”属性的“始终复制”