2010-06-30 8 views
1

1:NLOG - DDL日誌表和設置的ConnectionString編程

是否有數據庫的目標日誌表某處記錄所有可能的領域create語句?我通過猜測創建了一個,並且我可以檢查源代碼,但是如果通用SQL可用,它會很方便。我搜索了StackOverflow和NLog站點,但是我發現的SQL是過時的並且包含不正確的字段類型。

2:

如果您正在配置從nlog.config文件數據庫的目標,你如何編程設置連接字符串?例如:

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

in application_start。

在此先感謝。

+0

[同樣的問題在這裏回答](http://nlog-forum.1685105.n2.nabble.com/DDL-for-Database-Table-How-to-set-Connection-String-Programmatically- td5241103.html) – 2013-11-28 16:25:34

回答

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>