Getting started
Basics
Domains & Origins
Performance

Configuration
Basics
Conditions
Dictionaries
Domains & Origins
Request settings
Cache settings
Headers
Responses
Performance
Purging
Custom VCL
Image optimization
Video

Security
Access Control Lists
Monitoring and testing
Securing communications
Security measures
TLS
Web Application Firewall

Integrations
Logging endpoints
Non-Fastly services

Diagnostics
Streaming logs
Debugging techniques
Common errors

Account info
Account management
Billing
User access and control

Reference

    Useful conditions for logging

      Last updated July 31, 2019

    In addition to the standard logging directives, the following conditions can be used for logging when you set up remote log streaming.

    Logging errors only

    You can log errors only if you want a general purpose log that catches everything and a more detailed log if there’s an error:

    fastly_info.state == "ERROR"

    You can also log only 500 errors:

    resp.status >= 500 && resp.status < 600

    Logging only specific URLs using an Edge Dictionary

    Using an Edge Dictionary (e.g., urls_to_log), you can log specific URLs having issues:

    table.lookup(urls_to_log, req.url.path) == "log"

    If a URL becomes a problem, you can start logging it by using the API to add the URL's path to the dictionary as a key with the value "log".

    Logging samples

    If you have a high-volume service, you might want to log only a proportion of requests by using the randombool VCL function in a condition. The following example will log only one percent of all requests:

    randombool(1,100)

    You could combine that with an Edge Dictionary to change the percentage of requests logged without having to deploy a new version of your service. The following example uses an Edge Dictionary named service_variables:

    randombool(std.atoi(table.lookup(service_variables, "logging_percentage", "0")), 100)

    In the example above, if the key logging_percentage doesn't exist, nothing will be logged.

    Using false to construct a log string in custom VCL

    To construct a log string in custom VCL, you can use the false condition. This condition makes sure nothing is sent to Fastly logging objects.

    Back to Top