如何NLog到运行时知道名称的文件?

时间:2014-07-19 17:04:32

标签: nlog

我需要将请求记录到我的Web服务器。每个请求都应记录到名称格式为" ClientIP.log"的文件中,其中ClientIP是请求来自的客户端的IP地址。如何使用NLog遵循此要求?

1 个答案:

答案 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