Update Traffic Log Settings

Overview

Updates traffic log settings for an API proxy. Traffic log settings control what request/response data is logged and which connectors are used for log export. Settings can be configured per environment.

Endpoint

PATCH /apiops/projects/{projectName}/apiProxies/{apiProxyName}/settings/traffic-log/

Authentication

Requires a Personal API Access Token.

Authorization: Bearer YOUR_TOKEN

Request

Headers

Header Value Required
Authorization Bearer {token} Yes
Content-Type application/json Yes

Path Parameters

Parameter Type Required Description
projectName string Yes Project name
apiProxyName string Yes API Proxy name

Request Body

Full JSON Body Example

{
  "enabledTraceLog": true,
  "enabledApplicationLog": false,
  "apiProxyTrafficLogSettingsList": [
    {
      "environmentName": "production",
      "logParamRequestFromClient": true,
      "logHeaderRequestFromClient": true,
      "logBodyRequestFromClient": true,
      "logParamRequestToTarget": true,
      "logHeaderRequestToTarget": true,
      "logBodyRequestToTarget": true,
      "logHeaderResponseFromTarget": true,
      "logBodyResponseFromTarget": true,
      "logHeaderResponseToClient": true,
      "logBodyResponseToClient": true,
      "enableDatabaseConnector": false,
      "enableElasticsearchConnector": true,
      "enableSyslogConnector": false,
      "enableWebhookConnector": false,
      "enableRabbitMqConnector": false,
      "enableActiveMqConnector": false,
      "enableKafkaConnector": false,
      "enableGraylogConnector": false,
      "enableLogbackConnector": false
    }
  ]
}

Request Body Fields

Field Type Required Default Description
enabledTraceLog boolean No - Enable/disable trace log
enabledApplicationLog boolean No - Enable/disable application log
apiProxyTrafficLogSettingsList array No [] List of environment-specific traffic log settings

Traffic Log Setting Item (apiProxyTrafficLogSettingsList)

Field Type Required Default Description
environmentName string Yes - Environment name
logParamRequestFromClient boolean No true Log query parameters from client request
logHeaderRequestFromClient boolean No true Log headers from client request
logBodyRequestFromClient boolean No true Log body from client request
logParamRequestToTarget boolean No true Log query parameters sent to target
logHeaderRequestToTarget boolean No true Log headers sent to target
logBodyRequestToTarget boolean No true Log body sent to target
logHeaderResponseFromTarget boolean No true Log headers from target response
logBodyResponseFromTarget boolean No true Log body from target response
logHeaderResponseToClient boolean No true Log headers sent to client response
logBodyResponseToClient boolean No true Log body sent to client response
enableDatabaseConnector boolean No false Enable database connector for log export
enableElasticsearchConnector boolean No false Enable Elasticsearch connector for log export
enableSyslogConnector boolean No false Enable Syslog connector for log export
enableWebhookConnector boolean No false Enable Webhook connector for log export
enableRabbitMqConnector boolean No false Enable RabbitMQ connector for log export
enableActiveMqConnector boolean No false Enable ActiveMQ connector for log export
enableKafkaConnector boolean No false Enable Kafka connector for log export
enableGraylogConnector boolean No false Enable Graylog connector for log export
enableLogbackConnector boolean No false Enable Logback connector for log export

Note: All fields are optional. Only provided fields are updated.

Connectors

Connectors must be created and configured before enabling them. See Connections API for connector management.

Response

Success Response (200 OK)

{
  "success": true
}

Response Fields

Field Type Description
success boolean Indicates if the request was successful

Error Response (400 Bad Request)

{
  "error": "bad_request",
  "error_description": "environmentName value can not be empty in traffic log settings!"
}

Common Causes

  • Missing environmentName in traffic log settings item
  • Environment name does not exist
  • Invalid connector configuration

Error Response (401 Unauthorized)

{
  "error": "unauthorized_client",
  "error_description": "Invalid token"
}

Error Response (404 Not Found)

{
  "error": "not_found",
  "error_description": "ApiProxy (name: MyAPI) was not found!"
}

cURL Example

Example 1: Configure Traffic Logging for Single Environment

curl -X PATCH \
  "https://demo.apinizer.com/apiops/projects/MyProject/apiProxies/MyAPI/settings/traffic-log/" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "enabledTraceLog": true,
    "apiProxyTrafficLogSettingsList": [
      {
        "environmentName": "production",
        "logParamRequestFromClient": true,
        "logHeaderRequestFromClient": true,
        "logBodyRequestFromClient": true,
        "logBodyResponseFromTarget": true,
        "enableElasticsearchConnector": true
      }
    ]
  }'

Example 2: Configure Multiple Environments

curl -X PATCH \
  "https://demo.apinizer.com/apiops/projects/MyProject/apiProxies/MyAPI/settings/traffic-log/" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "enabledTraceLog": true,
    "enabledApplicationLog": false,
    "apiProxyTrafficLogSettingsList": [
      {
        "environmentName": "production",
        "logHeaderRequestFromClient": true,
        "logBodyRequestFromClient": true,
        "logBodyResponseFromTarget": true,
        "enableElasticsearchConnector": true,
        "enableKafkaConnector": true
      },
      {
        "environmentName": "staging",
        "logParamRequestFromClient": true,
        "logHeaderRequestFromClient": true,
        "logBodyRequestFromClient": true,
        "enableDatabaseConnector": true
      }
    ]
  }'

Notes and Warnings

  • Environment-Specific: Traffic log settings are configured per environment
  • Environment Name: Must match an existing environment name
  • Connectors: Connectors must be created before enabling (see Connections API)
  • Logging Overhead: Logging request/response bodies can impact performance
  • Data Privacy: Be careful when logging sensitive data (passwords, tokens, etc.)
  • Trace Log: enabledTraceLog enables trace logging for debugging
  • Application Log: enabledApplicationLog enables application-level logging
  • Default Values: Most log fields default to true if not specified
  • Permissions: Requires ROLE_MANAGE_PROXIES permission