我想在NLog输出的每一行添加一个字符串。逻辑保持不变,尝试获取当前用户,如果成功,则将当前用户添加到输出。
我知道每次如何实现它,但我想在一个地方设置这个模板,而不是在每次写作时重复它。
我想在NLog输出的每一行添加一个字符串。逻辑保持不变,尝试获取当前用户,如果成功,则将当前用户添加到输出。
我知道每次如何实现它,但我想在一个地方设置这个模板,而不是在每次写作时重复它。
该 WindowsIdentityLayoutRenderer
应该给你你想要的东西。您可以选择记录域,用户名或两者。
您可以将它(如未经测试)配置为NLog.config文件:
<targets>
<target name="file" xsi:type="File"
layout="${longdate} | ${level} | ${logger} | ${windows-identity} | ${message}"
fileName="${basedir}/${shortdate}.log" />
</targets>
这可能不适用于低权限环境。
你现在如何获得用户名?如果你得到这样的东西:
HttpContext.Current.User.Identity.Name
然后你可以使用NLog的“aspnet-user-identity”LayoutRenderer,如下所示:
<targets>
<target name="file" xsi:type="File"
layout="${longdate} | ${level} | ${logger} | ${aspnet-user-identity} | ${message}"
fileName="${basedir}/${shortdate}.log" />
</targets>
NLog的aspnet * LayoutRenderers在NLog.Extended.sll中,因此除了NLog.dll之外你还需要这个dll。
该 WindowsIdentityLayoutRenderer
应该给你你想要的东西。您可以选择记录域,用户名或两者。
您可以将它(如未经测试)配置为NLog.config文件:
<targets>
<target name="file" xsi:type="File"
layout="${longdate} | ${level} | ${logger} | ${windows-identity} | ${message}"
fileName="${basedir}/${shortdate}.log" />
</targets>
这可能不适用于低权限环境。
你现在如何获得用户名?如果你得到这样的东西:
HttpContext.Current.User.Identity.Name
然后你可以使用NLog的“aspnet-user-identity”LayoutRenderer,如下所示:
<targets>
<target name="file" xsi:type="File"
layout="${longdate} | ${level} | ${logger} | ${aspnet-user-identity} | ${message}"
fileName="${basedir}/${shortdate}.log" />
</targets>
NLog的aspnet * LayoutRenderers在NLog.Extended.sll中,因此除了NLog.dll之外你还需要这个dll。