我正在使用带有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中插入数据。
答案 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配置文件。将值设置为“复制到输出目录”属性的“始终复制”