如何使用 Azure 资源管理器在 Azure webapp 中设置应用程序日志

How to set the application log in an Azure webapp using Azure resource manager

有谁知道如何使用 Azure 资源管理器(Powershell 或 JSON)在 Azure Web 应用程序上设置以下诊断设置。

使用 .json 我只能找到这些设置

     "requestTracingEnabled": true, /* Failed request tracing, aka 'freb' */
     "httpLoggingEnabled": true, /* IIS logs (aka Web server logging) */
     "logsDirectorySizeLimit": 40, /* 40 MB limit for IIS logs */
     "detailedErrorLoggingEnabled": true, /* Detailed error messages  */

这会打开 Web 服务器日志记录到文件系统,但不会打开应用程序日志记录或 blob 存储。

对于 Powershell,此命令似乎只适用于 ASM,因为它找不到提供给它的非经典存储帐户

   Enable-AzureWebsiteApplicationDiagnostic

如有任何帮助,我们将不胜感激。我们目前使用的是 Azure Powershell 0.9.8

此致

如果您在 Resource Explorer 中浏览现有的网络应用程序,您会发现 config/logs 部分看起来像这样:

{
  "id": "/subscriptions/.../config/logs",
  "name": "logs",
  "type": "Microsoft.Web/sites/config",
  "location": "North Central US",
  "properties": {
    "applicationLogs": {
      "fileSystem": {
        "level": "Off"
      },
      "azureBlobStorage": {
        "level": "Information",
        "sasUrl": "...",
        "retentionInDays": 14
      }
    },
    ...
}

我相信您可以在 json 模板中使用这种格式来配置日志记录。 (此部分将是包含问题中提到的设置的 config/web 部分的同级部分。)

请注意 config/logs 部分未在 System.Web schema 中描述,因此我认为目前 MS 不支持该部分。我很确定我已经尝试过并看到它有效。

根据您上面的截图,Azure Resource Manager (ARM) template json部分用于配置应用程序日志(Blob)和Web服务器日志记录(存储)如下所示:

{
  "apiVersion": "2015-08-01",
  "name": "logs",
  "type": "config",
  "dependsOn": [
    "[resourceId('Microsoft.Web/Sites', parameters('siteName'))]"
  ],
  "properties": {
    "applicationLogs": {
      "azureBlobStorage": {
        "level": "Information",
        "sasUrl": "<Your Azure Blob Storage Account SAS Url>",
        "retentionInDays": null
      }
    },
    "httpLogs": {
      "azureBlobStorage": {
        "sasUrl": "<Your Azure Blob Storage Account SAS Url>",
        "retentionInDays": null,
        "enabled": true
      }
    },
    "failedRequestsTracing": {
      "enabled": true
    },
    "detailedErrorMessages": {
      "enabled": true
    }
  }
}

参考文献:AzureWebsitesSamples/ARMTemplates/WebAppManyFeatures.json

希望这能回答您的问题并帮助解决您的问题。

如果您需要进一步的帮助或说明,请告诉我。

我在第一个条款中没有找到如何在模板中设置它。但事实证明,在提供资源后,这很容易。请参阅 处的答案,了解使用 Set-AzureRmResource

执行此操作的实际脚本