使用Nlog记录Asp.Net Web API的上下文信息

时间:2017-05-07 13:59:50

标签: asp.net-web-api nlog

我有两个单独的表来记录asp.net web Api中的用户活动和错误。 这是我的活动日志表: ActivityLog

要将日志信息存储在表中,请执行以下Nlog.config设置。

<target name="database" xsi:type="Database" keepConnection="true" useTransactions="true"
             dbProvider="System.Data.SqlClient" commandType="Text"
        connectionString="data source=XXXXX;initial catalog=XXXXX;integrated security=false;persist security info=True;User ID=XXXXX;Password=XXXXX"
        commandText="INSERT INTO [dbo].[ActivityLog]([PageName],[MethodName],[IPAddress],[RequestedUrl],[IsAuthenticated],[UserName],[Date]) VALUES(@PageName,@MethodName,@IPAddress,@RequestedUrl,@IsAuthenticated,@UserName,@Date)">
  <parameter name="@PageName" layout="" />
  <parameter name="@MethodName" layout="" />
  <parameter name="@IPAddress" layout=""/>
  <parameter name="@RequestedUrl" layout="${aspnet-request:serverVariable=HTTP_URL}"/>
  <parameter name="@IsAuthenticated" layout="${aspnet-user-identity}:isAuthenticated"/>
  <parameter name="@UserName" layout="${aspnet-user-identity}"/>
  <parameter name="@Date" layout="${date:s}"/>
</target>

对于Page Name参数,我需要Web API Controller Name,而对于Method Name参数,我需要调用Controller的action方法。 此外,我需要知道用户是否经过身份验证。

现在请告诉我Nlog配置文件中定义的设置是否正确,以及如何将值传递给其他参数。

0 个答案:

没有答案