Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var AllLevels = []Level{ Off, Discrete, Summary, WithHeaders, WithHeadersAndBodies, }
AllLevels lists all 5 values in order.
var AllowedPunctuationInFilenames = nonWindowsPunct
var Fs = afero.NewOsFs()
Fs provides the filesystem. It can be stubbed for testing.
var LongBodyThreshold = 100
LongBodyThreshold is the body length threshold beyond which the body will be written to a text file (when the content is text). Otherwise it is written inline in the log.
var Now = func() time.Time { return time.Now().UTC() }
Now provides the current time. It can be stubbed for testing.
Functions ¶
Types ¶
type Filter ¶ added in v0.3.0
A Filter determines the logging level, possibly based on each request.
type FilterFunc ¶ added in v0.3.0
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.
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 )
type LogContent ¶
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 Logger ¶
type Logger func(item *LogItem)
Logger is a function that processes log items, usually by writing them to a log file.
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.