fastlylogging

package module
v0.1.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 24, 2024 License: MIT Imports: 5 Imported by: 0

README

Fastly Logging

Build Status Go Report Card Docs License

Fastly Logging id a library to provide helpers to standardize log format strings.

The initial focus is on JSON format structured logging.

The library seeks to provide two things:

  1. default JSON format definition builder
  2. Go struct for unmarshaling event JSON object

Documentation

Index

Constants

View Source
const (
	FieldTimestamp                     = "timestamp"
	FieldTimestampDefault              = `%{strftime(\{"%Y-%m-%dT%H:%M:%S%z"\}, time.start)}V`
	FieldServiceID                     = "service_id"
	FieldServiceIDDefault              = `%{req.service_id}V`
	FieldTimeElapsed                   = "time_elapsed"
	FieldTimeElapsedDefault            = `%{time.elapsed.usec}V`
	FieldClientIP                      = "client_ip"
	FieldClientIPDefault               = `%{req.http.Fastly-Client-IP}V`
	FieldGeoCountry                    = "geo_country"
	FieldGeoCountryDefault             = `%{client.geo.country_name}V`
	FieldGeoCity                       = "geo_city"
	FieldGeoCityDefault                = `%{client.geo.city}V`
	FieldHost                          = "host"
	FieldHostDefault                   = `%{if(req.http.Fastly-Orig-Host, req.http.Fastly-Orig-Host, req.http.Host)}V`
	FieldURL                           = "url"
	FieldURLDefault                    = `%{json.escape(req.url)}V`
	FieldRequest                       = "request"
	FieldRequestDefault                = `%{req.request}V`
	FieldRequestMethod                 = "request_method"
	FieldRequestMethodDefault          = `%{json.escape(req.method)}V`
	FieldRequestProtocol               = "request_protocol"
	FieldRequestProtocolDefault        = `%{json.escape(req.proto)}V`
	FieldRequestReferer                = "request_referer"
	FieldRequestRefererDefault         = `%{json.escape(req.http.referer)}V`
	FieldRequestUserAgent              = "request_user_agent"
	FieldRequestUserAgentDefault       = `%{json.escape(req.http.User-Agent)}V`
	FieldResponse                      = "response"
	FieldResponseDefault               = `%{resp.response}V`
	FieldResponseState                 = "response_state"
	FieldResponseStateDefault          = `%{json.escape(fastly_info.state)}V`
	FieldResponseStatus                = "response_status"
	FieldResponseStatusDefault         = `%{resp.status}V`
	FieldResponseReason                = "response_reason"
	FieldResponseReasonDefault         = `%{if(resp.response, "%22"+json.escape(resp.response)+"%22", "null")}V`
	FieldResponseBodySize              = "response_body_size"
	FieldResponseBodySizeDefault       = `%{resp.body_bytes_written}V`
	FieldFastlyServer                  = "fastly_server"
	FieldFastlyServerDefault           = `%{json.escape(server.identity)}V`
	FieldFastlyServerDatacenter        = "server_datacenter"
	FieldFastlyServerDatacenterDefault = `%{server.datacenter}V`
	FieldFastlyIsEdge                  = "fastly_is_edge"
	FieldFastlyIsEdgeDefault           = `%{if(fastly.ff.visits_this_service == 0, "true", "false")}V`
	FieldFastlyCacheState              = "fastly_cache_state"
	FieldFastlyCacheStateDefault       = `%{fastly_info.state}V`
	FieldWAFBlock                      = "waf_block"
	FieldWAFBlockDefault               = `%{req.http.X-Waf-Block}V`
	FieldWAFBlockID                    = "waf_block_id"
	FieldWAFBlockIDDefault             = `%{req.http.X-Waf-Block-Id}V`
)

Variables

This section is empty.

Functions

func EntryFormatDefault

func EntryFormatDefault(fields ...string) (map[string]string, error)

func KnownFields

func KnownFields() []string

func KnownFieldsDefaultMap

func KnownFieldsDefaultMap() map[string]string

Types

type Entry

type Entry struct {
	Timestamp        time.Time `json:"timestamp"`
	ClientIP         string
	GeoCountry       string
	GeoCity          string
	Host             string
	RequestMethod    string
	RequestProtocol  string
	RequestReferer   string
	RequestUserAgent string
	RequestState     string
	RequestStatus    string
	RequestReason    string
	RquestBodySize   string
	FastlyServer     string
	FastlyIsEdge     bool
}

Directories

Path Synopsis
cmd

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL