logging

package
v0.9.1 Latest Latest
Warning

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

Go to latest
Published: May 20, 2021 License: MIT Imports: 6 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

AllLevels lists all 5 values in order.

View Source
var Now = func() time.Time {
	return time.Now().UTC()
}

Now provides the current time. It can be stubbed for testing.

Functions

This section is empty.

Types

type Filter added in v0.3.0

type Filter interface {
	Level(*http.Request) Level
}

A Filter determines the logging level, possibly based on each request.

type FilterFunc added in v0.3.0

type FilterFunc func(*http.Request) Level

FilterFunc adapts a function to be a Filter.

func FixedLevel added in v0.3.0

func FixedLevel(level Level) FilterFunc

FixedLevel is a FilterFunc that always return a specified Level.

func (FilterFunc) Level added in v0.3.0

func (f FilterFunc) Level(req *http.Request) Level

type Level

type Level int

Level allows control of the predicate of detail in log messages.

const (
	// Off turns logging off.
	Off Level = iota

	// Discrete log messages contain only a summary of the request and response.
	// No query parameters are printed in order to hide potential personal information.
	Discrete

	// Summary log messages contain only a summary of the request and response,
	// including the full target URL.
	Summary

	// WithHeaders log messages contain a summary and the request/response headers
	WithHeaders

	// WithHeadersAndBodies log messages contain a summary and the request/response headers and bodies
	// Textual bodies are included in the log; for binary content, the size is shown instead.
	WithHeadersAndBodies
)

func (Level) Ordinal added in v0.0.7

func (i Level) Ordinal() int

Ordinal returns the ordinal number of a Level.

func (Level) String added in v0.0.7

func (i Level) String() string

String returns the literal string representation of a Level, which is the same as the const identifier.

type LogContent

type LogContent struct {
	Header http.Header
	Body   *body.Body
}

type LogItem

type LogItem struct {
	Method     string
	URL        *url.URL
	StatusCode int
	Request    LogContent
	Response   LogContent
	Err        error
	Start      time.Time
	Duration   time.Duration
	Level      Level
}

LogItem records information about one HTTP round-trip.

type VariableFilter added in v0.3.0

type VariableFilter struct {
	// contains filtered or unexported fields
}

VariableFilter is a Filter that is controlled by a predicate. This predicate can be altered by any goroutine at any time.

func NewVariableFilter added in v0.3.0

func NewVariableFilter(initial Level) *VariableFilter

NewVariableFilter is a Filter that initially has a fixed level. However, its predicate can be changed later.

func NewVariablePredicate added in v0.3.0

func NewVariablePredicate(initial FilterFunc) *VariableFilter

NewVariablePredicate is a Filter with a predicate that can be changed later.

func (*VariableFilter) Level added in v0.3.0

func (vf *VariableFilter) Level(req *http.Request) Level

func (*VariableFilter) SetLevel added in v0.3.0

func (vf *VariableFilter) SetLevel(newLevel FilterFunc)

SetLevel allows the predicate to be changed. This can be called from any goroutine.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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