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

C# NLog.config中的IIS应用程序名称,c#,wcf,iis-7.5,nlog,C#,Wcf,Iis 7.5,Nlog,我正在将NLog日志记录集成到IIS 7.5中托管的WCF服务中。该服务的多个实例(不同版本)安装在同一站点下,因此我希望应用程序名称成为日志路径的一部分 我知道NLog.Web扩展名和${iis site name},但由于该站点对所有实例都是通用的,因此它是我希望在日志文件路径中使用的站点级别下的应用程序名 每个应用程序都是从单独的baseDir安装的,但我更希望日志位于远离baseDir的文件夹结构中 有关于获取应用程序名称的提示吗?在搜索答案时,大多数线程都会找到HostingEnvir

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

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

每个应用程序都是从单独的baseDir安装的,但我更希望日志位于远离baseDir的文件夹结构中

有关于获取应用程序名称的提示吗?在搜索答案时,大多数线程都会找到HostingEnvironment.SiteName,但我还没有找到类似的方法来获取应用程序名


提前感谢。

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

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

LayoutRenderer.Register("iis-application-name", (logEvent) => HostingEnvironment.ApplicationVirtualPath);
然后,您可以在NLog配置文件中使用
${iis应用程序名称}

只需记住在执行任何其他操作之前注册渲染器,即在开始登录之前注册渲染器