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

时间:2016-01-15 11:41:26

标签: json powershell azure azure-resource-manager

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

enter image description here

使用.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

此致

3 个答案:

答案 0 :(得分:4)

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

{
  "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

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

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

答案 1 :(得分:3)

如果您在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部分中未描述compressed_cases_dict = {} for case in caselist: if case.case_id not in compressed_cases_dict: compressed_cases_dict[case.case_id] = case else: if case.form_type == 'B': compressed_cases_dict[case.case_id].form_type = 'B' compressed_cases_dict[case.case_id].cough = case.cough else: compressed_cases_dict[case.case_id].fever = case.fever compressed_cases_dict[case.case_id].gender = case.gender # if we really want just a list cases = compressed_cases_dict.values() 部分,因此我目前不支持MS。我很确定我已经尝试过并看到它有效。

答案 2 :(得分:0)

在第一项规定中,我没有找到如何在模板中进行设置。但是事实证明,配置资源后很容易。有关使用Set-AzureRmResource

的实际脚本,请参见https://stackoverflow.com/a/51617949/511144的答案。