我正在尝试使用 NLog 绕过参数值将单个表记录到使用 NLog 的每列中。但不知何故我无法登录到 SQL 表。
我尝试通过传递这样的代码来传递值,并在 web.config 中添加目标和规则。
类中的代码
private static Logger _logger;
public CustomToken()
{
_logger = LogManager.GetLogger("apiUsageLogger");
}
_logger.Info("{clientname}", "test");
_logger.Info($"clientusername", "test");
_logger.Info($"route", "test");
_logger.Info($"parameters", "test");
_logger.Info($"isuserauthenticated", 1);
在 web.config 中
<target name="apiUsageLog" xsi:type="Database" connectionStringName="connStringName">
<commandtext>
INSERT INTO Table
(ClientName, ClientUserName, Route, Parameters, IsUserAuthenticated, Machine)
VALUES
(@clientname, @clientusername, @route, @parameters, @isuserauthenticated, @machine)
</commandtext>
<parameter name="@clientname" layout="${clientname}" />
<parameter name="@clientusername" layout="${clientusername}" />
<parameter name="@route" layout="${route}" />
<parameter name="@parameters" layout="${parameters}" />
<parameter name="@isuserauthenticated" layout="${isuserauthenticated}" />
<parameter name="@machine" layout="${machinename}" />
</target>
</targets>
<rules>
<<logger name="apiUsageLogger" minlevel="Info" writeTo="apiUsageLog" />
</rules>
不知何故,数据没有填充到表中。
有没有办法可以将数据填充到适当的列中?NLog 是正确的做法吗?
慕神8447489