【发布时间】:2014-10-01 07:47:12
【问题描述】:
我正在尝试动态记录多个 IIS 站点的站点名称,而不是单独为每个站点提供名称作为变量。我的 NLog 配置是集中式的,这意味着每个站点都引用同一个 NLog 配置文件。另外,我不能对站点本身进行更改,我只能修改配置文件。
例如,在处理 WinForms 应用程序时,我可以使用 ${processname} 布局渲染器。但是,对于 IIS 站点,这将返回 ISS 应用程序池进程名称,例如 w3wp。但这不允许我区分多个 IIS 站点。
我目前的解决方案是检查进程名称是否为 w3wp,然后使用 ${windows-identity} 布局渲染器,因为这将在 Identity 设置为 ApplicationPoolIdentity 时返回应用程序池的名称。但这并不总是可能/想要的。
我也一直在考虑使用 ${basedir},但我找不到删除任何不必要部分的方法,因为我只需要路径的最后一个文件夹。
有什么想法吗?
【问题讨论】: