NLog - DDL для таблицы журнала и программная установка ConnectionString - PullRequest
1 голос
/ 01 июля 2010

1

Существует ли оператор create для таблицы журнала цели базы данных для всех возможных полей, задокументированных где-нибудь? Я создал один, угадав, и я мог проверить источник, но это было бы удобно, если бы был доступен универсальный SQL. Я искал StackOverflow и сайт NLog, но обнаруженный мной SQL был устаревшим и содержал неправильные типы полей.

2

Если вы настраиваете цель базы данных из файла nlog.config, как вы программно устанавливаете строку подключения? Что-то вроде:

Logger dbLogger = LogManager.GetLogger ("dbLogger"); DatabaseTarget t = dbLogger.GetDatabaseTarget; t.ConnectionString = "...";

в application_start.

Заранее спасибо.

1 Ответ

0 голосов
/ 27 января 2011

Этот пример полезен для вас? Я нашел это на сайте 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...