AspNetRequest Form Layout Renderer
Rolf Kristensen edited this page Aug 28, 2023
·
10 revisions
ASP.NET Request Form key/value pairs.
Platforms Supported: All
Introduced in NLog.Web 4.7
${aspnet-request-form:items=String[]:exclude=String[]:outputFormat=Enum
:itemSeparator=Layout:valueSeparator=Layout
:valuesOnly=Boolean}
-
items - Form 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.2, and replaces the
include
-option. -
exclude - Form key name(s) to exclude from the output. A list of keys can be passed as comma separated values, e.g.:
Key1,Key2
.
-
outputFormat - Renders as flat string or as JSON. Default:
Flat
.-
Flat
- Key-value-pair as standard string -
JsonArray
- Key-value-pair in JSON-array (Introduced with NLog 5.0, replaces now obsoleteJson
) -
JsonDictionary
- Key-value-pair as JSON-dictionary. (Introduced with NLog 5.0, replaces now obsoletesingleAsArray
)
-
-
itemSeparator - Separator between items. Default:
,
. Only applies when OutputFormat isFlat
. -
valueSeparator - Separator between value and key. Default:
=
. Only applies when OutputFormat isFlat
. -
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 5.1.1
Use this layout renderer to log the ASP.NET Request Form collection.
In C# code:
httpContext.Request.Form = new FormCollection(new Dictionary<string, StringValues>{
{ "id","1" },
{ "name","Test Person" },
{ "token","86abe8fe-2237-4f87-81af-0a4e522b4140" }
});
${aspnet-request-form}
Will print:
"id=1,name=Test Person,token=86abe8fe-2237-4f87-81af-0a4e522b4140"
${aspnet-request-form:OutputFormat=JSON}
Will print:
[{"id":"1"},{"name":"Test Person"},{"token":"86abe8fe-2237-4f87-81af-0a4e522b4140"}]
${aspnet-request-form:items=id,name}
Will print:
"id=1,name=Test Person"
${aspnet-request-form:Exclude=token}
Will print:
"id=1,name=Test Person"
${aspnet-request-form:ItemSeparator=${newline}}
Will print:
"id=1\r\nname=Test Person\r\ntoken=86abe8fe-2237-4f87-81af-0a4e522b4140"
- Troubleshooting Guide - See available NLog Targets and Layouts: https://nlog-project.org/config
- Getting started
- How to use structured logging
- Troubleshooting
- FAQ
-
All targets, layouts and layout renderers
Popular: - Using NLog with NLog.config
- Using NLog with appsettings.json