如何使用 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
执行此操作的实际脚本
有谁知道如何使用 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