Documentation ¶
Index ¶
- Constants
- func FilterLogger(outputLogger log.Logger, predicate func(keyvals []interface{}) bool) log.Logger
- func NewBurrowFormatLogger(logger log.Logger, options ...opt) *burrowFormatLogger
- func NewJSONLogger(writer io.Writer) log.Logger
- func NewLogfmtLogger(writer io.Writer) log.Logger
- func NewMultipleOutputLogger(outputLoggers ...log.Logger) log.Logger
- func NewStreamLogger(writer io.Writer, format string) (log.Logger, error)
- func NewTemplateLogger(writer io.Writer, textTemplate string, recordSeparator []byte) (log.Logger, error)
- func NewTerminalLogger(writer io.Writer) log.Logger
- func SortLogger(outputLogger log.Logger, keys ...string) log.Logger
- func VectorValuedLogger(logger log.Logger) *vectorValuedLogger
- type CaptureLogger
- func (cl *CaptureLogger) BufferLogger() *ChannelLogger
- func (cl *CaptureLogger) Flush() error
- func (cl *CaptureLogger) FlushLogLines() [][]interface{}
- func (cl *CaptureLogger) Log(keyvals ...interface{}) error
- func (cl *CaptureLogger) OutputLogger() log.Logger
- func (cl *CaptureLogger) Passthrough() bool
- func (cl *CaptureLogger) SetPassthrough(passthrough bool)
- type ChannelLogger
- func (cl *ChannelLogger) BufferCap() channels.BufferCap
- func (cl *ChannelLogger) BufferLength() int
- func (cl *ChannelLogger) DrainForever(logger log.Logger, errCh channels.Channel)
- func (cl *ChannelLogger) Flush(logger log.Logger) error
- func (cl *ChannelLogger) FlushLogLines() [][]interface{}
- func (cl *ChannelLogger) Log(keyvals ...interface{}) error
- func (cl *ChannelLogger) ReadLogLine() []interface{}
- func (cl *ChannelLogger) Reset()
- func (cl *ChannelLogger) WaitReadLogLine() []interface{}
- type FileLogger
- type FileTemplateParams
- type MultipleOutputLogger
- type Syncable
Constants ¶
const ( DefaultOptions opt = iota StringifyValues )
const ( JSONFormat = "json" LogfmtFormat = "logfmt" TerminalFormat = "terminal" DefaultFormat = TerminalFormat )
const (
DefaultLoggingRingBufferCap channels.BufferCap = 100
)
Variables ¶
This section is empty.
Functions ¶
func FilterLogger ¶ added in v0.18.0
Filter logger allows us to filter lines logged to it before passing on to underlying output logger Creates a logger that removes lines from output when the predicate evaluates true
func NewBurrowFormatLogger ¶ added in v0.30.5
func NewMultipleOutputLogger ¶
Creates a logger that forks log messages to each of its outputLoggers
func NewStreamLogger ¶ added in v0.17.0
func NewTemplateLogger ¶ added in v0.18.0
func SortLogger ¶ added in v0.18.0
Provides a logger that sorts key-values with keys in keys before other key-values
func VectorValuedLogger ¶
Types ¶
type CaptureLogger ¶ added in v0.17.0
func NewCaptureLogger ¶ added in v0.17.0
func NewCaptureLogger(outputLogger log.Logger, bufferCap channels.BufferCap, passthrough bool) *CaptureLogger
Capture logger captures output sent to it in a buffer retaining a reference to its output logger (the logger whose input it is capturing). It can optionally pass logs through to the output logger. Because it holds a reference to its output it can also be used to coordinate Flushing of the buffer to the output logger in special circumstances.
func (*CaptureLogger) BufferLogger ¶ added in v0.17.0
func (cl *CaptureLogger) BufferLogger() *ChannelLogger
The BufferLogger where the input into these CaptureLogger is stored in a ring buffer of log lines.
func (*CaptureLogger) Flush ¶ added in v0.17.0
func (cl *CaptureLogger) Flush() error
Flushes every log line available in the buffer at the time of calling to the OutputLogger and returns. Does not block indefinitely.
Note: will remove log lines from buffer so they will not be produced on any subsequent flush of buffer
func (*CaptureLogger) FlushLogLines ¶ added in v0.17.0
func (cl *CaptureLogger) FlushLogLines() [][]interface{}
Flushes every log line available in the buffer at the time of calling to a slice and returns it. Does not block indefinitely.
Note: will remove log lines from buffer so they will not be produced on any subsequent flush of buffer
func (*CaptureLogger) Log ¶ added in v0.17.0
func (cl *CaptureLogger) Log(keyvals ...interface{}) error
func (*CaptureLogger) OutputLogger ¶ added in v0.17.0
func (cl *CaptureLogger) OutputLogger() log.Logger
The OutputLogger whose input this CaptureLogger is capturing
func (*CaptureLogger) Passthrough ¶ added in v0.17.0
func (cl *CaptureLogger) Passthrough() bool
Gets whether the CaptureLogger is forwarding log lines sent to through to its OutputLogger. Concurrently Safe.
func (*CaptureLogger) SetPassthrough ¶ added in v0.17.0
func (cl *CaptureLogger) SetPassthrough(passthrough bool)
Sets whether the CaptureLogger is forwarding log lines sent to it through to its output logger. Concurrently safe.
type ChannelLogger ¶
func NewChannelLogger ¶ added in v0.17.0
func NewChannelLogger(loggingRingBufferCap channels.BufferCap) *ChannelLogger
Creates a Logger that uses a uses a non-blocking ring buffered channel. This logger provides a common abstraction for both a buffered, flushable logging cache. And a non-blocking conduit to transmit logs via DrainForever (or NonBlockingLogger).
func NonBlockingLogger ¶
func NonBlockingLogger(outputLogger log.Logger) (*ChannelLogger, channels.Channel)
Returns a Logger that wraps the outputLogger passed and does not block on calls to Log and a channel of any errors from the underlying logger
func (*ChannelLogger) BufferCap ¶ added in v0.17.0
func (cl *ChannelLogger) BufferCap() channels.BufferCap
Get the cap off the internal ring buffer
func (*ChannelLogger) BufferLength ¶ added in v0.17.0
func (cl *ChannelLogger) BufferLength() int
Get the current occupancy level of the ring buffer
func (*ChannelLogger) DrainForever ¶ added in v0.17.0
func (cl *ChannelLogger) DrainForever(logger log.Logger, errCh channels.Channel)
Enters an infinite loop that will drain any log lines from the passed logger. You may pass in a channel
Exits if the channel is closed.
func (*ChannelLogger) Flush ¶ added in v0.17.0
func (cl *ChannelLogger) Flush(logger log.Logger) error
Drains everything that is available at the time of calling
func (*ChannelLogger) FlushLogLines ¶ added in v0.17.0
func (cl *ChannelLogger) FlushLogLines() [][]interface{}
Drains the next contiguous segment of loglines up to the buffer cap waiting for at least one line
func (*ChannelLogger) Log ¶
func (cl *ChannelLogger) Log(keyvals ...interface{}) error
func (*ChannelLogger) ReadLogLine ¶
func (cl *ChannelLogger) ReadLogLine() []interface{}
Tries to read a log line from the channel buffer or returns nil if none is immediately available
func (*ChannelLogger) Reset ¶ added in v0.17.0
func (cl *ChannelLogger) Reset()
Close the existing channel halting goroutines that are draining the channel and create a new channel to buffer into. Should not cause any log lines arriving concurrently to be lost, but any that have not been drained from old channel may be.
func (*ChannelLogger) WaitReadLogLine ¶
func (cl *ChannelLogger) WaitReadLogLine() []interface{}
Read a log line by waiting until one is available and returning it
type FileLogger ¶ added in v0.20.1
type FileLogger struct {
// contains filtered or unexported fields
}
func NewFileLogger ¶ added in v0.17.0
func NewFileLogger(path string, formatName string) (*FileLogger, error)
func (*FileLogger) Log ¶ added in v0.20.1
func (fl *FileLogger) Log(keyvals ...interface{}) error
func (*FileLogger) Reload ¶ added in v0.20.1
func (fl *FileLogger) Reload() error
type FileTemplateParams ¶ added in v0.20.1
func NewFileTemplateParams ¶ added in v0.20.1
func NewFileTemplateParams() *FileTemplateParams
func (*FileTemplateParams) Timestamp ¶ added in v0.20.1
func (ftp *FileTemplateParams) Timestamp() string
type MultipleOutputLogger ¶
This represents an 'AND' type logger. When logged to it will log to each of the loggers in the slice.
func (MultipleOutputLogger) Log ¶
func (mol MultipleOutputLogger) Log(keyvals ...interface{}) error