2012-10-23 70 views
2

我使用Nlog和MYsql作爲目標數據庫。NLog mySQL數據庫作爲目標配置

我的配置是如下:

<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數據庫的任何級別的消息。

任何人都可以幫我嗎?

再見了我也試過命令文本

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

,但不能在MySQL數據庫中插入數據。

+0

您是否嘗試過打開''?這些設置應該允許您查看NLog內部日誌。我也寫過關於在我的博客上使用NLog配置MySql數據庫,所以也許它會幫助你:http://lowleveldesign.wordpress.com/2012/10/28/to-log-or-nlog/ – lowleveldesign

回答

3

從NLOG docs

NLOG設計吞下可能導致的日誌記錄運行時異常。以下設置可以更改此行爲和/或重定向這些消息。

  • < n日誌throwExceptions =「真」 /> - 添加throwExceptions在配置文件中的屬性使NLOG停止掩蔽異常,並將它們傳遞給調用應用程序而不是。此屬性在部署時很有用,可以快速查找任何問題。建議將應用程序正確配置爲運行時將throwExceptions設置爲「false」,以便任何意外的日誌記錄問題都不會使應用程序崩潰。
  • < n日誌internalLogFile = 「file.txt的」/> - 添加internalLogFile導致NLOG寫其內部調試消息到指定的文件。這包括記錄期間可能引發的任何異常。
  • < n日誌internalLogLevel = 「跟蹤|調試|信息|警告|錯誤|致命」/> - 確定內部日誌級別。級別越高,內部日誌輸出的冗餘越少。
  • < n日誌internalLogToConsole =「假|真」 /> - 確定內部日誌消息是否被髮送到控制檯。
  • < n日誌internalLogToConsoleError =「假|真」 /> - 確定內部日誌記錄消息是否發送到控制檯錯誤輸出(錯誤)。
0

右鍵單擊NLOG配置文件。將值設置爲「始終複製」的屬性「複製到輸出目錄」