使用 NLog 填充 SQL DB 中预先存在的日志表
Use NLog to populate pre-exisiting log tables in SQLDB
我对此进行了大量搜索,但一无所获。我的研究表明我可以使用 NLog 将日志记录到数据库,但这总是涉及创建一个新的 table 具有特定的列和存储过程。
我有大约 10 个不同的系统,每个系统都有自己的自定义构建日志记录功能和数据库 table。我想要做的是用 NLog 替换我们当前的自定义构建日志记录逻辑。但是我需要 NLog 然后使用我现有的 tables 和模式来存储日志。我无法以任何方式修改日志 tables,因为它们与我此时可以更改的其他功能紧密相关。所以我需要 NLog 来符合我的日志 table 模式。
这甚至可以用 NLog 实现吗?
任何细节将不胜感激。
https://github.com/nlog/NLog/wiki/Database-target
您的配置类似于:
<target name="db"
xsi:type="Database"
connectionStringName="NLogConn"
commandText="INSERT INTO MyExistingTable (FieldA, FieldB, FieldC) VALUES (@a, @b, @c)">
<parameter name="@a" layout="${machinename}" />
<parameter name="@b" layout="${date}" />
<parameter name="@c" layout="${exception:tostring}" />
</target>
layout
是 https://github.com/nlog/nlog/wiki/Layout-Renderers 中的任何内容或其组合。您还可以通过添加具有不同名称的不同目标来定义多个模式。
我对此进行了大量搜索,但一无所获。我的研究表明我可以使用 NLog 将日志记录到数据库,但这总是涉及创建一个新的 table 具有特定的列和存储过程。
我有大约 10 个不同的系统,每个系统都有自己的自定义构建日志记录功能和数据库 table。我想要做的是用 NLog 替换我们当前的自定义构建日志记录逻辑。但是我需要 NLog 然后使用我现有的 tables 和模式来存储日志。我无法以任何方式修改日志 tables,因为它们与我此时可以更改的其他功能紧密相关。所以我需要 NLog 来符合我的日志 table 模式。
这甚至可以用 NLog 实现吗?
任何细节将不胜感激。
https://github.com/nlog/NLog/wiki/Database-target
您的配置类似于:
<target name="db"
xsi:type="Database"
connectionStringName="NLogConn"
commandText="INSERT INTO MyExistingTable (FieldA, FieldB, FieldC) VALUES (@a, @b, @c)">
<parameter name="@a" layout="${machinename}" />
<parameter name="@b" layout="${date}" />
<parameter name="@c" layout="${exception:tostring}" />
</target>
layout
是 https://github.com/nlog/nlog/wiki/Layout-Renderers 中的任何内容或其组合。您还可以通过添加具有不同名称的不同目标来定义多个模式。