NLog extensions for displaying User Windows Identity and target wrapper for user impersonation
Install the package
Install-Package NLog.WindowsIdentityor in your csproj:<PackageReferenceInclude="NLog.WindowsIdentity"Version="6.*" />
Add to your nlog.config:
<extensions> <addassembly="NLog.WindowsIdentity"/> </extensions>
Alternative register from code using fluent configuration API:
LogManager.Setup().SetupExtensions(ext =>{ext.RegisterTarget<NLog.Targets.Wrappers.ImpersonatingTargetWrapper>();ext.RegisterLayoutRenderer<NLog.LayoutRenderers.WindowsIdentityLayoutRenderer>();});
Example of NLog.config-file that outputs username from Windows Identity :
<nlog>
<extensions>
<addassembly="NLog.WindowsIdentity"/>
</extensions>
<targets>
<targetname="console"xsi:type="console"layout="${message}|User=${windows-identity}" />
</targets>
<rules>
<loggerminLevel="Info"writeTo="console" />
</rules>
</nlog>Example of NLog.config-file that apply ImpersonatingWrapper :
<nlog>
<extensions>
<addassembly="NLog.WindowsIdentity"/>
</extensions>
<targets>
<targetname="userConsole"xsi:type="ImpersonatingWrapper"userName="xxx">
<targetname="console"xsi:type="console"layout="${message}|User=${windows-identity}" />
</target>
</targets>
<rules>
<loggerminLevel="Info"writeTo="userConsole" />
</rules>
</nlog>