Changing log line formats

Fastly's Real-Time Log Streaming feature allows you to change the format that your log messages are delivered in on select logging endpoints. We allow you to choose one of several formats:

  • Blank is the default. There's no prefix — just your log message. This is useful when writing to JSON and CSV files.
  • Classic is a legacy format based on RFC 3164. See Classic Format for more information.
  • Loggly is a structured syslog prefix format based on RFC 5424.
  • Logplex is a Heroku-style prefixed syslog format.

Updating endpoints to use a different format

A number of logging endpoints can be updated to use a message format other than the default via either the web interface or the API.

Using the web interface

Follow these instructions to update a logging endpoint using the web interface:

  1. Log in to the Fastly web interface.
  2. From the Home page, select the appropriate service. You can use the search box to search by ID, name, or domain.
  3. Click the Edit configuration button and then select the option to clone the active version. The Domains page appears.
  4. Click the Logging link. The Logging endpoints page appears.
  5. Click the name of a logging endpoint you want to edit. The Edit this endpoint page appears.
  6. Click the Advanced options link near the bottom of the page. The Advanced options appear.
  7. In the Select a log line format section, select a log line format for the logging endpoint.
  8. Click the Update button.
  9. Click the Activate button to deploy your configuration changes.

Using the API

Run the following command to update a logging endpoint using the API:

$ curl -X PUT -H 'Fastly-Key: FASTLY_API_TOKEN' -H 'Content-Type: application/json' '<your Fastly service ID>/version/<version number>/logging/<logging endpoint>/<log name>' --data-binary '{"message_type":"<type>"}'

Keep in mind that the message_type field is a per-object field. Updating it on one logging object will not change it on any other objects.

For example, to update a Google Cloud Storage logging endpoint named GCS Test to use the blank message type, the curl command would look something like this:

$ curl -X PUT -H 'Fastly-Key: FASTLY_API_TOKEN' -H 'Content-Type: application/json' '' --data-binary '{"message_type":"blank"}'

The log name included a space that needed to be URL encoded (the space into %20).

Classic Format

Classic is a legacy format based on the RFC 3164 protocol. It is not, however, strictly compliant with RFC 3164. To make logging easier to synchronize across a global network, classic uses timestamps based on the RFC 3339 protocol, which specifies that timestamps include a timezone. RFC 3164, on the other hand, specifies local time without any timezone data.

The following example shows a message in the classic log format.

<134>2016-07-04T22:37:26Z cache-sjc3128 LogTest[62959]: <your log message>

The prefix begins with the message priority (always <134>, which means Facility=Local0, Severity=Informational), followed by the date and time the log was sent (2016-07-04T22:37:26Z), the cache node it came from (in this case, cache-sjc3128), the name of your log (LogTest) and the ID of the process sending it (62959).

Was this guide helpful?

Do not use this form to send sensitive information. If you need assistance, contact support.