【问题标题】:IIS Application name in NLog.configNLog.config 中的 IIS 应用程序名称
【发布时间】:2018-05-01 06:36:54
【问题描述】:

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

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

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

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

提前致谢。

【问题讨论】:

    标签: c# wcf iis-7.5 nlog


    【解决方案1】:

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

    这应该适用于 NLog 4.4 和更新版本:

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

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

    记住在做任何事情之前注册渲染器,也就是在你开始登录之前注册。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多