NLog.config中的IIS应用程序名称

时间:2018-05-01 06:36:55

标签: c# wcf iis-7.5 nlog

我正在将IIS日志记录集成到IIS 7.5中托管的WCF服务中。服务的多个实例(不同版本)安装在同一站点下,因此我希望应用程序名称成为日志记录路径的一部分。

我知道NLog.Web扩展和${iis-site-name},但由于该站点对所有实例都是通用的,因此我想在日志文件路径中使用的是站点级别以下的应用程序名称。

每个应用程序都是从单独的baseDir安装的,但我希望将目录放在远离baseDir的文件夹结构中。

获取应用程序名称的任何提示?在搜索答案时,大多数线程都会导致HostingEnvironment.SiteName,但我无法找到类似的方法来获取应用程序名称。

提前致谢。

1 个答案:

答案 0 :(得分:1)

您可以使用HostingEnvironment.ApplicationVirtualPath属性,然后连接NLog布局渲染器。

这适用于NLog 4.4及更新版本:

LayoutRenderer.Register("iis-application-name", (logEvent) => HostingEnvironment.ApplicationVirtualPath);

然后您可以在NLog配置文件中使用${iis-application-name}

请记住在执行任何其他操作之前注册渲染器,即在启动loggin之前执行此操作。