1

1:

どこかに文書化されているすべての可能なフィールドのデータベースターゲットログテーブルの作成ステートメントはありますか?推測して作成し、ソースを確認することもできましたが、汎用SQLがあれば便利です。StackOverflowとNLogサイトを検索しましたが、見つかったSQLは古く、間違ったフィールドタイプが含まれていました。

2:

nlog.configファイルからデータベースターゲットを構成している場合、接続文字列をプログラムでどのように設定しますか?何かのようなもの:

ロガーdbLogger=LogManager.GetLogger( "dbLogger"); DatabaseTarget t = dbLogger.GetDatabaseTarget; t.ConnectionString = "...";

application_startで。

前もって感謝します。

4

1 に答える 1

0

以下のサンプルは役に立ちましたか?私はこれをnlogサイトで見つけました。これを試しましたか?

<target xsi:type="Database" name="db">
      <!-- SQL command to be executed for each entry -->
      <commandText>INSERT INTO [LogEntries](TimeStamp, Message, Level, Logger) VALUES(getutcdate(), @msg, @level, @logger)</commandText>

      <!-- parameters for the command -->
      <parameter name="@msg" layout="${message}" />
      <parameter name="@level" layout="${level}" />
      <parameter name="@logger" layout="${logger}" />

      <!-- connection string -->
      <dbProvider>System.Data.SqlClient</dbProvider>
      <connectionString>server=.\SQLEXPRESS;database=MyLogs;integrated security=sspi</connectionString>

      <!-- commands to install database -->
      <install-command>
        <text>CREATE DATABASE MyLogs</text>
        <connectionString>server=.\SQLEXPRESS;database=master;integrated security=sspi</connectionString>
        <ignoreFailures>true</ignoreFailures>
      </install-command>

      <install-command>
        <text>
          CREATE TABLE LogEntries(
          id int primary key not null identity(1,1),
          TimeStamp datetime2,
          Message nvarchar(max),
          level nvarchar(10),
          logger nvarchar(128))
        </text>
      </install-command>

      <!-- commands to uninstall database -->
      <uninstall-command>
        <text>DROP DATABASE MyLogs</text>
        <connectionString>server=.\SQLEXPRESS;database=master;integrated security=sspi</connectionString>
        <ignoreFailures>true</ignoreFailures>
      </uninstall-command>
    </target>
于 2011-01-27T10:39:42.823 に答える