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
- commandType - 指令的类型。默认:1
-
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