我需要将请求记录到我的Web服务器。每个请求都应该记录到名称格式为"ClientIP.log"的文件中,其中ClientIP是发出请求的客户机的IP地址。我如何使用NLog来满足这个要求?
这可以使用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" />
也可以编写自己的布局渲染器,它允许您根据请求定义自己的上下文信息。下面的问题详细解释了这一点:最有用的NLog配置