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.
func FileLogger ¶ added in v0.4.0
FileLogger returns a new Logger writing to a file in dir. The name of the file is provided. The same directory specifies where request and response bodies will be written as files. The current directory is used if this is "." or blank.
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.