2

ターゲット データベースとして 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にデータを挿入できません。

4

2 に答える 2

3

NLogドキュメントから:

NLogは、ロギングの結果として発生する可能性のある実行時例外を飲み込むように設計されています。次の設定は、この動作を変更したり、これらのメッセージをリダイレクトしたりする可能性があります。

  • <nlog throwExceptions = "true" />-構成ファイルにthrowExceptions属性を追加すると、NLogは例外のマスキングを停止し、代わりに呼び出し元のアプリケーションに渡します。この属性は、展開時に問題をすばやく見つけるのに役立ちます。アプリケーションが実行するように適切に構成されたらすぐにthrowExceptionsを「false」に設定して、偶発的なロギングの問題によってアプリケーションがクラッシュしないようにすることをお勧めします。
  • <nlog internalLogFile = "file.txt" />-internalLogFileを追加すると、NLogは内部デバッグメッセージを指定されたファイルに書き込みます。これには、ロギング中にスローされる可能性のあるすべての例外が含まれます。
  • <nlog internalLogLevel = "Trace | Debug | Info | Warn | Error | Fatal" /> –内部ログレベルを決定します。レベルが高いほど、内部ログ出力の冗長性は低くなります。
  • <nlog internalLogToConsole = "false | true" /> –内部ロギングメッセージをコンソールに送信するかどうかを決定します。
  • <nlog internalLogToConsoleError = "false | true" /> –内部ログメッセージをコンソールエラー出力(stderr)に送信するかどうかを決定します。
于 2012-11-20T17:25:57.297 に答える
-1

NLog 構成ファイルを右クリックします。プロパティ「出力ディレクトリにコピー」の値を「常にコピー」に設定

于 2013-03-11T11:48:53.537 に答える