如何使用NLog记录运行时已知的文件名



我需要将请求记录到我的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配置

最新更新