【问题标题】:Azure DevOps Release changing appsettings.json Logging sectionAzure DevOps 发布更改 appsettings.json 日志记录部分
【发布时间】:2018-10-12 13:53:59
【问题描述】:

我对 Azure DevOps 和发布管理有疑问。首先是一些背景知识——我们使用 visualstudio.com 以及构建代理、发布代理(在不同环境 VM 上运行)来管理我们的 CI、构建和发布。我正在尝试对我的非开发服务器上的日志记录进行故障排除,并将问题追溯到我的 appsettings.json 文件中缺少的元素。当我登录到生产虚拟机并查看 appsetings.json 文件时,我发现我的日志记录部分如下所示:

"Logging": {
    "IncludeScopes": false,
    "LogLevel": {
      "Default": "Information"
    }
  },

在我的构建工件(网站 .zip 文件)中的 appsettings.json 文件中看起来像这样:

"Logging": {
    "IncludeScopes": false,
    "LogLevel": {
      "Default": "Debug",
      "System": "Information",
      "Microsoft": "Information"
    }
  },

当我在服务器上更改 appsettings.json 日志记录部分以匹配构建 .zip 中的 appsettings 时,我的日志记录问题已得到解决。

我的问题是 - Azure DevOps 发布管道(以前称为 VSTS)中改变 appsettings.json 日志记录部分的内容是什么?我已验证我的发布定义没有对日志记录部分进行变量替换。

【问题讨论】:

  • 我找到了一种使用发布变量和 json 变量替换的解决方法。将 Logging.LogLevel.Default 的变量添加到“Debug”可以让我为每个记录器输出调试行。不过,我没有看到限制某些记录器的方法。

标签: azure-devops azure-pipelines-release-pipeline


【解决方案1】:

这看起来很像您的构建使用了错误的来源。您看到的错误 appsettings.json 是否可能反映了过时的版本?我不知道为什么会发生这种情况,但我过去在 Git 和 TFVC 中都看到过几次。

如果这是问题所在,则清理您的代理工作文件夹或在构建定义中选择(一次或永久)清理:

【讨论】:

  • 检查了我的来源,它们来自正确的项目、存储库和分支。清理选项也设置为“true”和“所有构建目录”。您的评论让我仔细检查了正在构建的工件,并导致我在 appsettings 中找到了多个日志记录声明。下面回答...
【解决方案2】:

发现了问题(这是一个愚蠢的问题)。问题最终是 appsettings.json 文件中 Logging 部分的多个声明。文件底部的声明有:

"Logging": {
"IncludeScopes": false,
"LogLevel": {
  "Default": "Information"
}

},

这将与部署的内容相匹配。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-12
    • 1970-01-01
    • 2022-09-30
    相关资源
    最近更新 更多