【问题标题】:Use Nlog to log context info of Asp.Net Web API使用 Nlog 记录 Asp.Net Web API 的上下文信息
【发布时间】:2017-10-05 13:18:45
【问题描述】:

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

要将日志信息存储在表中,这里是 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>

对于页面名称参数,我需要 Web API 控制器名称,对于方法名称参数,我需要调用的控制器的操作方法。 我还需要知道用户是否经过身份验证。

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

【问题讨论】:

  • 您当前的设置是否不起作用或者您错过了一些值?
  • 对于页面名称参数,我需要 Web API 控制器名称,对于方法名称参数,我需要调用的控制器的操作方法。我还需要知道用户是否经过身份验证。

标签: asp.net-web-api nlog


【解决方案1】:

所有可能的布局渲染器都可以在here 中找到。 您可以使用以下渲染器:

  • Web API 控制器名称:${aspnet-MVC-Controller}
  • 方法名称:您可以使用${callsite}${aspnet-mvc-action}
  • 已通过身份验证:${identity:isAuthenticated}

PS:

  • 数据库目标的所有参数都是字符串参数

【讨论】:

  • 我没有使用.net core。我正在使用.net 4.6,上述解决方案对我有用吗?您能否让我知道如何使用 nlog 在 asp.net Web API 中将错误记录到 dB。
  • 谢谢,请告诉我如何在 asp.net web API (.net framework 4.6) 中使用 nlog 在 dB 中记录所有错误/异常相关信息。
  • ,非常感谢。现在,我能够成功地将信息和异常记录到 dB。但是,我还需要记录传递给 ASP.NET Web API 中的操作方法的参数值。你能建议一个方法吗!而且,我需要根据 web.config 文件中的设置启用或禁用日志记录。请帮忙
猜你喜欢
  • 2011-09-22
  • 1970-01-01
  • 2017-09-27
  • 1970-01-01
  • 2021-11-27
  • 1970-01-01
  • 1970-01-01
  • 2016-02-01
  • 1970-01-01
相关资源
最近更新 更多