Database target

使用ADO.NET输出日志到数据库

语法:

<targets>
  <target xsi:type="Database"
          name="String"
          dbUserName="Layout"
          dbProvider="String"
          useTransactions="Boolean"
          connectionStringName="String"
          connectionString="Layout"
          keepConnection="Boolean"
          dbDatabase="Layout"
          dbPassword="Layout"
          dbHost="Layout"
          installConnectionString="Layout"
          commandText="Layout">
    <install-command commandType="Enum" connectionString="Layout" ignoreFailures="Boolean"
                 text="Layout"/><!-- repeated -->
    <uninstall-command commandType="Enum" connectionString="Layout" ignoreFailures="Boolean"
                   text="Layout"/><!-- repeated -->
    <parameter layout="Layout" name="String" precision="Byte"
         scale="Byte" size="Integer"/><!-- repeated -->
  </target>
</targets>

 

参数

一般配置

name - target的名称

连接配置

dbUserName - 数据库用户名称。如果数据库连接不包含数据库用户名,那么,这个配置,将生成一个"User ID=" 字符串,附加在数据库连接中
dbProvider - 数据库连接提供器。默认: sqlserver
这个参数的是注册在machine.config 或 app.config的常量名称. 通常包含以下值:

  • System.Data.SqlClient -
  • System.Data.SqlServerCe.3.5 -
  • System.Data.OracleClient - (deprecated in .NET Framework 4)
  • Oracle.DataAccess.Client -
  • System.Data.SQLite -
  • Npgsql -
  • MySql.Data.MySqlClient -

( .NET Compact Framework不支持常量名称). 注意,参数值必须使用完整的类名 (继承IDbConnection) or 或者下面的特定标记:

  • sqlserver, mssql, microsoft or msde - SQL Server Data Provider
  • oledb - OLEDB Data Provider
  • odbc - ODBC Data Provider

useTransactions - 是否使用数据库事务。一些数据库提供器需要这个配置,默认:false
connectionStringName -连接字符串名称

在下面的环境下,不被支持:

  • NLog v1.0 for .NET Compact Framework 1.0
  • NLog v1.0 for .NET Compact Framework 2.0
  • NLog v1.0 for .NET Framework 1.0
  • NLog v1.0 for .NET Framework 1.1
  • NLog v1.0 for .NET Framework 2.0
  • NLog v2.0 for .NET Compact Framework 2.0
  • NLog v2.0 for .NET Compact Framework 3.5

connectionString - 连接字符串。 如果配置了这个参数, 他将覆盖DBHost, DBUserName, DBPassword, DBDatabase and DBProvider的值
keepConnection - 是否在日志组件活动时,保持数据库连接开启。默认:True
dbDatabase - 数据库名称。如果数据库连接不包含数据库名称,那么,这个配置,将生成一个"Database=" 字符串,附加在数据库连接中
dbPassword - 数据库密码。 如果数据库连接不包含数据库密码,那么,这个配置,将生成一个"Password=" 字符串,附加在数据库连接中
dbHost - 数据库主机名。如果数据库连接不包含数据库主机名,那么,这个配置,将生成一个"Server=" 字符串,附加在数据库连接中

安装参数

installDdlCommands - 创建数据库的指令集合
他的每一项都包含在<install-command />元素中,该元素有如下特性:

  • commandType - 指令的类型。默认:1
    可能的值:
    • StoredProcedure -
    • TableDirect -
    • Text -
  • connectionString - 运行这个指令的连接字符串。如果没有提供,就会使用target配置的连接字符串。
  • ignoreFailures - 是否忽略错误
  • parameters - 参数集合。 参数容器中的每一个参数,都是一个参数名称,对应一个Layout表达式
    每一个参数,都有以下特性:

    • layout - 用于计算参数值的layout
    • name - 参数名称
    • precision - 数值的精度。默认:0
    • scale - 数值的小数位数。默认:0
    • size - 参数大小。默认:0
    • text - 指令文本

      在下面的情况,不被支持:

      • NLog v1.0 for .NET Compact Framework 1.0
      • NLog v1.0 for .NET Compact Framework 2.0
      • NLog v1.0 for .NET Framework 1.0
      • NLog v1.0 for .NET Framework 1.1
      • NLog v1.0 for .NET Framework 2.0
    • installConnectionString - 用于安装和反安装的连接字符串。

      在下面的情况,不被支持:

      • NLog v1.0 for .NET Compact Framework 1.0
      • NLog v1.0 for .NET Compact Framework 2.0
      • NLog v1.0 for .NET Framework 1.0
      • NLog v1.0 for .NET Framework 1.1
      • NLog v1.0 for .NET Framework 2.0
    • uninstallDdlCommands - 反安装的指令
      他的每一项都包含在<uninstall-command />元素中,该元素有如下特性:

        • commandType - 指令的类型。默认:1
          可能的值:
          • StoredProcedure -
          • TableDirect -
          • Text -
        • connectionString - 运行这个指令的连接字符串。如果没有提供,就会使用target配置的连接字符串。
        • ignoreFailures - 是否忽略错误
        • parameters - 参数集合。 参数容器中的每一个参数,都是一个参数名称,对应一个Layout表达式
          每一个参数,都有以下特性:

          • layout - 用于计算参数值的layout
          • name - 参数名称
          • precision - 数值的精度。默认:0
          • scale - 数值的小数位数。默认:0
          • size - 参数大小。默认:0
          • text - 指令文本

            在下面的情况,不被支持:

            • NLog v1.0 for .NET Compact Framework 1.0
            • NLog v1.0 for .NET Compact Framework 2.0
            • NLog v1.0 for .NET Framework 1.0
            • NLog v1.0 for .NET Framework 1.1
            • NLog v1.0 for .NET Framework 2.0

SQL Statement

commandText - 每一种等级的日志都会执行这个SQL语句
这是一个插入语句或者存储过程。他能够使用参数 (比如在SQL SERVER中的@parameter或者Oracle中的:parameter) ,但是不能使用layout语法。如果需要使用,请在<parameter />节点中配置

parameters - 参数列表。 Each parameter contains a mapping between NLog layout and a database named or positional parameter. Collection

参数列表中的每一个参数,都是一个参数名称,对应一个Layout表达式
每一个参数,都有以下特性:

    • layout - 用于计算参数值的layout
    • name - 参数名称
    • precision - 数值的精度。默认:0
    • scale - 数值的小数位数。默认:0
    • size - 参数大小。默认:0
posted @ 2014-11-04 09:18  争世不悔  阅读(375)  评论(0编辑  收藏  举报