NLog.config 中的 IIS 应用程序名称
IIS Application name in NLog.config
我正在将 NLog 日志记录集成到 IIS 7.5 中托管的 WCF 服务中。该服务的多个实例(不同版本)安装在同一站点下,因此我希望应用程序名称成为日志记录路径的一部分。
我知道 NLog.Web 扩展名和 ${iis-site-name}
但由于该站点对所有实例都是通用的,因此我想在日志文件路径中使用站点级别以下的应用程序名称.
每个应用程序都是从单独的 baseDirs 安装的,但我更愿意将日志放在远离 baseDir 的文件夹结构中。
获取应用程序名称有什么提示吗?在搜索答案时,大多数线程都会指向 HostingEnvironment.SiteName,但我无法找到类似的方法来获取应用程序名称。
提前致谢。
您可以使用 HostingEnvironment.ApplicationVirtualPath
属性 然后连接 NLog 布局渲染器。
这应该适用于 NLog 4.4 和更新版本:
LayoutRenderer.Register("iis-application-name", (logEvent) => HostingEnvironment.ApplicationVirtualPath);
然后您可以在 NLog 配置文件中使用 ${iis-application-name}
。
请记住在执行任何其他操作之前注册渲染器,即在开始登录之前注册。
我正在将 NLog 日志记录集成到 IIS 7.5 中托管的 WCF 服务中。该服务的多个实例(不同版本)安装在同一站点下,因此我希望应用程序名称成为日志记录路径的一部分。
我知道 NLog.Web 扩展名和 ${iis-site-name}
但由于该站点对所有实例都是通用的,因此我想在日志文件路径中使用站点级别以下的应用程序名称.
每个应用程序都是从单独的 baseDirs 安装的,但我更愿意将日志放在远离 baseDir 的文件夹结构中。
获取应用程序名称有什么提示吗?在搜索答案时,大多数线程都会指向 HostingEnvironment.SiteName,但我无法找到类似的方法来获取应用程序名称。
提前致谢。
您可以使用 HostingEnvironment.ApplicationVirtualPath
属性 然后连接 NLog 布局渲染器。
这应该适用于 NLog 4.4 和更新版本:
LayoutRenderer.Register("iis-application-name", (logEvent) => HostingEnvironment.ApplicationVirtualPath);
然后您可以在 NLog 配置文件中使用 ${iis-application-name}
。
请记住在执行任何其他操作之前注册渲染器,即在开始登录之前注册。