Skip to content

AspNetRequest RouteParameters Layout Renderer

Rolf Kristensen edited this page Aug 28, 2023 · 11 revisions

ASP.NET Request RouteParameters key/value pairs.

Platforms Supported: All

Introduced in NLog.Web 5.0 and NLog.Web.AspNetCore 5.0

Configuration Syntax

${aspnet-request-routeparameters:items=String:outputFormat=Enum
    :itemSeparator=String:valueSeparator=String
    :valuesOnly=Boolean}

Parameters

Rendering Options

  • items - RouteParameter key name(s). A list of keys can be passed as comma separated values, e.g.: Key1,Key2 (Not specified means all)

    Introduced with NLog.Web / NLog.Web.AspNetCore v5.2.1, and replaces the RouteParameterKeys-option.

Formatting options

  • outputFormat - Renders as flat string or as JSON. Default: Flat.
    • Flat - Key-value-pair as standard string
    • JsonArray - Key-value-pair in JSON-array
    • JsonDictionary - Key-value-pair as JSON-dictionary
  • itemSeparator - Separator between items. Default: ,. Only applies when OutputFormat is Flat.
  • valueSeparator - Separator between value and key. Default: =. Only applies when OutputFormat is Flat.
  • ValuesOnly - Only render the values of the key/value pairs. Default: false.
  • LowerCaseKeys - Convert Keys to lowercase. Default: false.

    Introduced in NLog.Web / NLog.Web.AspNetCore v5.1.1

Remarks

Use this layout renderer to log the value of the specified route-parameter(s) stored in the ASP.NET GetRouteData() Values collection.

Examples

Log single route-parameter in default Flat output format

${aspnet-request-routeparameters:Items=key1}

Will print:

"key1=value1"

Log multiple route-parameters in default Flat output format

${aspnet-request-routeparameters:items=key1,id}

Will print:

"key1=value1,id=d4b20a34-6231-4201-83a6-c72599e41164"

Log single route-parameter in JSON output format

${aspnet-request-routeparameters:items=key1:OutputFormat=JsonArray}

Will print:

[{"key1":"value1"}]

Log multiple route-parameters in JSON output format

${aspnet-request-routeparameters:items=key1,id:OutputFormat=JsonArray}

Will print:

[{"key1":"value1","id":"d4b20a34-6231-4201-83a6-c72599e41164"}]

Log single route-parameter as JSON dictionary:

${aspnet-request-routeparameters:items=key1:OutputFormat=JsonDictionary}

Will print:

{"key1":"value1"}

Log single route-parameter in Flat output format as value only

${aspnet-request-routeparameters:items=key1:ValuesOnly=true}

Will print:

"value1"

Log single route-parameter in JSON output format as value only

${aspnet-request-routeparameters:items=key1:OutputFormat=JsonArray:ValuesOnly=true}

Will print:

["value1"]

Log multiple route-parameters in JSON output format as value only

${aspnet-request-routeparameters:items=key1,id:OutputFormat=JsonArray:ValuesOnly=true}

Will print:

["value1","d4b20a34-6231-4201-83a6-c72599e41164"]
Clone this wiki locally