【问题标题】:Log current page url with NLog使用 NLog 记录当前页面 url
【发布时间】:2011-09-02 05:39:46
【问题描述】:

我正在尝试将当前页面的 URL 记录为 NLog 布局的一部分。我搜索了 NLog 布局变量,但一无所获。

有谁知道如何获取当前页面的 URL 作为布局的变量?也可以只提取域名以便在 EventLog 源属性中使用吗?

【问题讨论】:

  • 跟进:我使用 ${aspnet-request:serverVariable=SERVER_NAME} 获取域

标签: asp.net nlog


【解决方案1】:

使用Aspnet-request layout renderer

<target xsi:type="Trace" 
            name="trace" 
          layout="${message} ${aspnet-request:serverVariable=Url}" />

您可以完全访问request properties

【讨论】:

【解决方案2】:

我测试了很多方法,但似乎只有“项目”对 http://msdn.microsoft.com/en-us/library/ms524602.aspx 有效

method = ${aspnet-request:item=HTTP_METHOD}

url 带有查询字符串 = ${aspnet-request:item=HTTP_URL}

用户代理/浏览器 = ${aspnet-request:item=HTTP_USER_AGENT}

等等……

更新

除了我上面的答案(我不记得我当时是否知道)但我在某个地方(也不记得在哪里,不久前)发现了 NLog.Extended还必须引用 .dll 以使用与 ASP.NET 日志记录相关的功能,即。带有${aspnet-...的布局

【讨论】:

  • 更进一步。您还需要安装 NLog.Web。
【解决方案3】:

在发现上述方法不适用于 .NET Core 之前,我尝试了上述 .NET Core 的答案

THE FOLLOWING DO NOT WORK FOR .NET CORE

${aspnet-request:serverVariable=Url}
${aspnet-request:item=HTTP_URL}

改为使用:

${aspnet-request-url}
${aspnet-request-querystring}

例如

    <target name="jsonFile" xsi:type="File" fileName="log.json" archiveNumbering="DateAndSequence" archiveAboveSize="5000000" maxArchiveFiles="10">
      <layout xsi:type="JsonLayout">
        <attribute name="time" layout="${longdate}" />
        <attribute name="level" layout="${level:upperCase=true}"/>
        <attribute name="message" layout="${message}" />
        <attribute name="exception" layout="${exception:format=ToString,StackTrace:maxInnerExceptionLevel=2}" />
        <attribute name="machineName" layout="${machinename}" />
        <attribute name="ip" layout="${aspnet-request-ip}" />
        <attribute name="method" layout="${aspnet-request-method}" />
        <attribute name="url" layout="${aspnet-request-url}" />
        <attribute name="query" layout="${aspnet-request-querystring}" />
        <attribute name="postedBody" layout="${aspnet-request-posted-body}" />
        <attribute name="userAgent" layout="${aspnet-request-useragent}" />
      </layout>
    </target>

更多信息请参见: https://nlog-project.org/config/?tab=layout-renderers&search=package:nlog.web.aspnetcore

【讨论】:

    猜你喜欢
    • 2017-03-18
    • 2013-03-01
    • 2012-04-07
    • 2022-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-17
    相关资源
    最近更新 更多