Skip to main content
Logs uploader automatically exports CDN resource logs to configured storage destinations in near real time, providing continuous visibility into request activity and cache behavior. Exported logs can also contain requests processed by mid-tier cache servers when Origin shielding is enabled and the policy includes these logs.
Logs uploader must be enabled for the account before the configuration UI is available. Contact Gcore Support or use Contact support on the Logs uploader page in the Gcore Customer Portal.

Logs uploader configuration

In the Customer Portal, open CDN, click Logs, and select Logs uploader. Control which fields are exported, how frequently the logs are delivered, and which storage service they are sent to. Supported destinations include Gcore Object Storage, S3-compatible storage, FTP and SFTP servers, and HTTP(S) endpoints. Use these exports for observability, analytics, or compliance workflows while managing data volume and processing requirements. The Logs uploader screen has three tabs:
  • Configurations — link policies and targets to deliver logs
  • Policies — set export rules and schedules
  • Targets — connect upload destinations
A configuration requires an existing policy and target.

First-time setup

A configuration links a policy and a target. Create them in this order before creating the configuration.
1

Create a policy

Go to the Policies tab and click Add policy. Select the log fields, set the time interval, and configure the file name format and size limit.
2

Create a target

Go to the Targets tab and click Add target. Select a destination type, such as S3, FTP, SFTP, or HTTP(S), and enter the connection details. A green Authentication complete status confirms the target is reachable.
3

Create a configuration

Go to the Configurations tab and click Add configuration. Link the policy and target created in the previous steps, then click Add configuration to activate.
4

Verify log delivery

Generate CDN traffic to a resource covered by the configuration. After the configured time interval has elapsed, check the destination for a new log file. Confirm that the file contains request entries with the expected fields.
Select the Configurations tab to view a table of configurations:
  • Configuration ID
    Click the column header to sort the table by configuration IDs.
  • Configuration name
    • Click the column header to sort the table by configuration names.
    • Click a configuration name to edit the configuration.
Use the search box at the top of the table to filter configurations by name or ID.
  • Policy
    Click a policy name to edit the linked policy.
  • Target
    Click a target name to edit the linked target.
  • Status
    Linked target status is displayed in the Status column. To re-run the authentication check, click (refresh) at the end of the status message.
  • More options
    Click (more options) in the last column to Edit, Disable, or Delete the configuration in that row.
  • Add configuration
    Click Add configuration (top right) to create a new configuration.
1

Open the configuration form

Navigate to Logs uploader, select the Configurations tab, and click Add configuration.
The Enable configuration switch appears at the top of the Add configuration window; to disable the configuration, toggle the switch to the left.
2

Select resources

Select the resources for this configuration:
For all resources, including newly created:
  1. Enter a Name for the configuration.
3

Link a policy and target

  1. Select a Policy to link from the drop-down list.
  2. Select a Target to link from the drop-down list.
4

Add the configuration

Click Add configuration again to finish and return to the Logs uploader. The new configuration appears in the table on the Configurations tab.
Configurations with correctly configured targets show Authentication complete in the Status column; to re-run the authentication check, click (refresh) at the end of the status message.
1

Open the configuration

  1. Navigate to Logs uploader and select the Configurations tab.
  2. Click the configuration name in the Configurations column, or click (more options) at the end of that row and select Edit.
The Enable configuration switch appears at the top of the Edit configuration window; to disable the configuration, toggle the switch to the left.
2

Update resources

Select the resources for this configuration:
For all resources, including newly created:
  1. Edit the Name field.
3

Update the links

  1. Select a Policy to link from the drop-down list.
  2. Select a Target to link from the drop-down list.
4

Save the configuration

Click Save changes (top right) to return to the Logs uploader.
Configurations with correctly configured targets show Authentication complete in the Status column; to re-run the authentication check, click (refresh) at the end of the status message.
1

Find the configuration

Navigate to Logs uploader and select the Configurations tab.
2

Apply the action

In the row with the configuration name, click (more options) in the last column and select EnableDisable, or Delete.
A configuration can also be enabled or disabled using the Enable configuration switch in Edit configuration or Add configuration windows.

Log schema and field definitions

The exported log schema includes standard CDN request fields, internal status codes, and format examples.
The format below is a non-exhaustive example. It does not include every available field — for instance, $timestamp_request_start, $masked_remote_addr, $query_string, and $quic are in the field table but not shown here. The actual log output depends on which fields are selected, their order, and the delimiter and separator configured in the policy.New fields may appear at the end of the line. When fields are added to logs, an email notification is sent about the update.
The following table contains a complete list of available log fields. Fields labeled “internal system variable” relate to the internal CDN system and can be ignored for most analytics use cases.Other fields can help with traffic analysis or statistics.
The $timestamp variable always produces an empty value. Use [$time_local] for a Common Log Format timestamp or $timestamp_request_start for request-start time in Unix epoch milliseconds. No client port field is available.
Internal status codes identify the CDN rule or feature that generated a response.
For HTTP(S) targets, Logs uploader sends a JSON request payload whose v field identifies the schema version — for instance, "v":"10". This metadata belongs to the JSON payload rather than the selectable CDN log fields, so it does not appear in the log format example or field table.The version increments when fields are added, renamed, or removed. New fields are added in a backward-compatible way where possible, so most schema changes do not require parser updates. Breaking changes are announced in advance through standard CDN update notifications. Pin downstream parsers (SIEM, ETL) to a known version and check v to detect schema changes.

WAAP log fields

When a CDN resource has WAAP enabled, the Logs uploader automatically appends WAAP security event fields to each request log line, alongside the CDN fields described above. Each request produces a single merged log entry, so CDN access data and the matching WAAP security verdict arrive correlated on the same delivery channel as existing CDN logs — no separate file and no extra configuration.
WAAP fields are added only for resources that have WAAP enabled and use the current edge protection architecture. For resources without WAAP, the existing CDN log line is unchanged.
DDoS protection logs are not exported through the Logs uploader. Only per-request WAAP security events are included. DDoS attack analytics remain available through the WAAP API and dashboard.
The following fields are appended to each request log line when WAAP is enabled on the resource.
All WAAP fields are best-effort: a field is empty ("") when WAAP did not compute a value for the request — no rule matched, or the request was served before WAAP analysis completed. Treat empty values as “not applicable”, not “zero”.
The $waap_decision field gives the final security verdict that WAAP applied at the edge:The $waap_optional_action field describes any additional action applied alongside the decision:
Challenged requests are recorded as blocked. Logs are written at the edge as soon as the response is sent, before WAAP knows whether the client will solve the challenge. When the client passes the challenge, subsequent requests from the same session are exported with $waap_decision="passed" and $waap_passed_incident_id pointing back to the original incident. Trace the final outcome by joining the two log lines on the session identifier. The full per-incident result is also available through the WAAP Request Details API.

Near real-time log export

The Time interval setting in a Policy defines how often logs are archived and exported. The default interval is 5 minutes and can be set between 5 and 60 minutes. If CDN servers receive no requests during the selected interval and Include empty logs is selected, Logs uploader sends an empty file of approximately 20 bytes to the storage target.