3
votes

I am trying to setup enable diagnostics logs for app service using portal, which is working fine as below :

enter image description here

The same settings i am trying create using ARM Template but it is not working. My ARM Template looks like below :

enter image description here

Is there anything wrong with settings or any other ways to enable logs ? Anyone help is appreciated.

Regards, Dipti Mamidala

2

2 Answers

2
votes

In the resources array of the resource for which you want to enable Diagnostic Logs, add a resource of type [resource namespace]/providers/diagnosticSettings.

Example :

"resources": [
  {
    "type": "providers/diagnosticSettings",
    "name": "[concat('Microsoft.Insights/', parameters('settingName'))]",
    "dependsOn": [
      "[/*resource Id for which Diagnostic Logs will be enabled>*/]"
    ],
    "apiVersion": "2017-05-01-preview",
    "properties": {
      "name": "[parameters('settingName')]",
      "storageAccountId": "[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccountName'))]",
      "eventHubAuthorizationRuleId": "[parameters('eventHubAuthorizationRuleId')]",
      "eventHubName": "[parameters('eventHubName')]",
      "workspaceId": "[parameters('workspaceId')]",
      "logs": [ 
        {
          "category": "/* log category name */",
          "enabled": true,
          "retentionPolicy": {
            "days": 0,
            "enabled": false
          }
        }
      ],
      "metrics": [
        {
          "category": "AllMetrics",
          "enabled": true,
          "retentionPolicy": {
            "enabled": false,
            "days": 0
          }
        }
      ]
    }
  }
]

Read more here in documentation

Update : To set the value of Web Server logging use the below example

             "properties": {
                "applicationLogs": {
                  "Storage": {
                    "level": "Verbose"
                  }
                },
                "httpLogs": {
                  "fileSystem": {
                             }
                          }
                       }

If you want Storage or fileSystem use any one of above

1
votes

I got this working by setting the httpLogs and httpLoggingEnabled properties.

This is the config resource nested within a site resource:

  "resources": [
    {
      "apiVersion": "2018-02-01",
      "type": "config",
      "name": "logs",
      "dependsOn": [
        "[concat('Microsoft.Web/sites/', parameters('name'))]"
      ],
      "properties": {
        "applicationLogs": {
          "azureBlobStorage": {
            "level": "information",
            "retentionInDays": 15
          }
        },
        "httpLogs": {
          "fileSystem": {
            "retentioninMb": 35,
            "retentioninDays": 15,
            "enabled": true
          }
        },
        "requestTracingEnabled": true,
        "requestTracingExpirationTime": "9999-12-31T23:59:00Z",
        "remoteDebuggingEnabled": false,
        "httpLoggingEnabled": true,
        "logsDirectorySizeLimit": 34,
        "detailedErrorLoggingEnabled": true
      }
    }
  ]