colog/interfaces.go

36 lines
1.2 KiB
Go

package colog
// Hook is the interface to be implemented by event hooks
type Hook interface {
Levels() []Level // returns the set of levels for which the hook should be triggered
Fire(*Entry) error // triggers the hook, this function will be called for every eligible log entry
}
// Formatter interface must be implemented by message formatters
// Format(*Entry) will be called and the resulting bytes sent to output
type Formatter interface {
Format(*Entry) ([]byte, error) // The actual formatter called every time
SetFlags(flags int) // Like the standard log.SetFlags(flags int)
Flags() int // Like the standard log.Flags() int
}
// ColorFormatter interface can be implemented by formatters
// to get notifications on whether the output supports color
type ColorFormatter interface {
Formatter
ColorSupported(yes bool)
}
// ColorSupporter interface can be implemented by "smart"
// outputs that want to handle color display themselves
type ColorSupporter interface {
ColorSupported() bool
}
// Extractor interface must be implemented by data extractors
// the extractor reads the message and tries to extract key-value
// pairs from the message and sets the in the entry
type Extractor interface {
Extract(*Entry) error
}