我需要将请求记录到我的Web服务器。每个请求都应记录到名称格式为" ClientIP.log"的文件中,其中ClientIP是请求来自的客户端的IP地址。如何使用NLog遵循此要求?
答案 0 :(得分:1)
这可以使用NLog AspRequest布局渲染器来完成。
请参阅https://github.com/NLog/NLog/wiki/AspRequest-layout-renderer
要获取远程IP地址,您将使用remote_addr
服务器变量。
${asp-request:serverVariable=remote_addr}
例如:
<target name="..."
xsi:type="File"
fileName="${basedir}/logs/${asp-request:serverVariable=remote_addr}.log" />
也可以编写自己的布局渲染器,它允许您根据请求定义自己的上下文信息。在此问题中详细解释了这一点:Most useful NLog configurations。