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

Json 如何使用Azure资源管理器在Azure webapp中设置应用程序日志,json,powershell,azure,azure-resource-manager,Json,Powershell,Azure,Azure Resource Manager,是否有人知道如何使用Azure资源管理器(Powershell或JSON)在Azure Web应用程序上设置以下诊断设置 使用.json,我只能找到这些设置 "requestTracingEnabled": true, /* Failed request tracing, aka 'freb' */ "httpLoggingEnabled": true, /* IIS logs (aka Web server logging) */ "logsDirectoryS

是否有人知道如何使用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


关于

如果您在中浏览现有的Web应用程序,您将发现一个类似以下内容的
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
部分未在中描述,因此我认为目前MS不支持该部分。我很确定我已经尝试过并看到了它的效果。

Azure资源管理器(ARM)模板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
    }
  }
}
{
“apiVersion”:“2015-08-01”,
“名称”:“日志”,
“类型”:“配置”,
“dependsOn”:[
[resourceId('Microsoft.Web/Sites',parameters('siteName'))]
],
“财产”:{
“应用程序日志”:{
“azureBlobStorage”:{
“级别”:“信息”,
“sasUrl”:“,
“保留天数”:空
}
},
“httpLogs”:{
“azureBlobStorage”:{
“sasUrl”:“,
“保留天数”:空,
“已启用”:真
}
},
“FailedRequestStraging”:{
“已启用”:真
},
“详细错误消息”:{
“已启用”:真
}
}
}
参考资料:

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


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

我在第一个条款中没有找到如何在模板中设置它。但事实证明,在调配资源后,这很容易。关于使用
Set AzureRmResource

的实际脚本,请参见上的答案。非常好-不知何故,我从未见过资源管理器-不应该再问这样的问题。有人能帮助我如何在RM模板(json)文件中,请?属性
sasUrl
retentioninday
实际上映射到应用程序设置键
DIAGNOSTICS\AZUREBLOBCONTAINERSASURL
DIAGNOSTICS\u azureblobretensiondays
。因此,您可以将它们设置为常规的
SiteConfig.AppSettings
properties.@MichaëlHompus只是一个警告说明,我认为这意味着如果以后将它们作为应用程序设置应用,我可以将它们注释掉,但您不能,如果sasUrl未设置/存在,部署会出现问题。