Documentation
¶
Index ¶
- func HasTerminal(w io.Writer) bool
- func RemoveFixedLine(log Logger)
- type Buffered
- func (l *Buffered) AddFixedLine() Logger
- func (l *Buffered) Close()
- func (l *Buffered) Error(format string, a ...Fielder) Logger
- func (l *Buffered) Fatal(format string, a ...Fielder)
- func (l *Buffered) Info(format string, a ...Fielder) Logger
- func (l *Buffered) Log(level Level, format string, fields ...Fielder) Logger
- func (l *Buffered) SetMinLevel(level Level) Logger
- func (l *Buffered) Transient(format string, a ...Fielder) Logger
- func (l *Buffered) Verbose(format string, a ...Fielder) Logger
- func (l *Buffered) Warning(format string, a ...Fielder) Logger
- type ChildLogger
- type Config
- type Field
- type FieldBool
- type FieldDuration
- type FieldError
- type FieldFloat64
- type FieldInt64
- type FieldString
- type FieldTimeFormat
- type FieldTimeUnix
- type FieldUint64
- type Fielder
- type FixedLine
- func (l *FixedLine) Close()
- func (l *FixedLine) Error(msg string, fields ...Fielder) Logger
- func (l *FixedLine) Fatal(msg string, fields ...Fielder)
- func (l *FixedLine) Info(msg string, fields ...Fielder) Logger
- func (l *FixedLine) Log(level Level, msg string, fields ...Fielder) Logger
- func (l *FixedLine) Parent() Logger
- func (l *FixedLine) RemoveFixedLine()
- func (l *FixedLine) SetMinLevel(level Level) Logger
- func (l *FixedLine) Transient(msg string, fields ...Fielder) Logger
- func (l *FixedLine) Verbose(msg string, fields ...Fielder) Logger
- func (l *FixedLine) Warning(msg string, fields ...Fielder) Logger
- type FixedLineAdder
- type FixedLineRemover
- type JSONPrinter
- type Level
- type Logger
- type NewLogger
- type NullLogger
- func (n *NullLogger) Close()
- func (n *NullLogger) Error(format string, a ...Fielder) Logger
- func (n *NullLogger) Fatal(format string, a ...Fielder)
- func (n *NullLogger) Info(format string, a ...Fielder) Logger
- func (n *NullLogger) Log(level Level, format string, a ...Fielder) Logger
- func (n *NullLogger) SetMinLevel(level Level) Logger
- func (n *NullLogger) Transient(format string, a ...Fielder) Logger
- func (n *NullLogger) Verbose(format string, a ...Fielder) Logger
- func (n *NullLogger) Warning(format string, a ...Fielder) Logger
- type Option
- type Printer
- type TeeLogger
- func (l *TeeLogger) AddFixedLine() Logger
- func (l *TeeLogger) Close()
- func (l *TeeLogger) Error(msg string, fields ...Fielder) Logger
- func (l *TeeLogger) Fatal(msg string, fields ...Fielder)
- func (l *TeeLogger) Info(msg string, fields ...Fielder) Logger
- func (l *TeeLogger) Log(level Level, msg string, fields ...Fielder) Logger
- func (l *TeeLogger) RemoveFixedLine()
- func (l *TeeLogger) SetMinLevel(level Level) Logger
- func (l *TeeLogger) Transient(msg string, fields ...Fielder) Logger
- func (l *TeeLogger) Verbose(msg string, fields ...Fielder) Logger
- func (l *TeeLogger) Warning(msg string, fields ...Fielder) Logger
- type TextPrinter
- type Unbuffered
- func (l *Unbuffered) Close()
- func (l *Unbuffered) Error(msg string, fields ...Fielder) Logger
- func (l *Unbuffered) Fatal(msg string, fields ...Fielder)
- func (l *Unbuffered) Info(msg string, fields ...Fielder) Logger
- func (l *Unbuffered) Log(level Level, msg string, fields ...Fielder) Logger
- func (l *Unbuffered) SetMinLevel(level Level) Logger
- func (l *Unbuffered) Transient(msg string, fields ...Fielder) Logger
- func (l *Unbuffered) Verbose(msg string, fields ...Fielder) Logger
- func (l *Unbuffered) Warning(msg string, fields ...Fielder) Logger
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func HasTerminal ¶ added in v0.4.1
HasTerminal returns true if the passed writer is connected to a terminal
func RemoveFixedLine ¶ added in v0.3.0
func RemoveFixedLine(log Logger)
Types ¶
type Buffered ¶
type Buffered struct {
// contains filtered or unexported fields
}
func NewBuffered ¶
func (*Buffered) AddFixedLine ¶
AddFixedLine creates a Logger that, when connected to a terminal, draws over itself. Thread safe.
func (*Buffered) Close ¶
func (l *Buffered) Close()
Close should be called before the app exits, to ensure any buffered output is flushed. Thread safe.
func (*Buffered) SetMinLevel ¶
type ChildLogger ¶ added in v0.2.0
type ChildLogger interface {
// Parent returns the parent Logger, or nil if it has no parent.
Parent() Logger
}
ChildLogger is the interface for loggers that feed back to a parent.
type FieldBool ¶ added in v0.4.0
type FieldDuration ¶ added in v0.4.0
func Dur ¶ added in v0.4.0
func Dur(name string, value time.Duration) FieldDuration
Dur adds a time.Duration field
func Duration ¶ added in v0.4.0
func Duration(name string, value time.Duration) FieldDuration
Duration adds a time.Duration field
func (FieldDuration) Field ¶ added in v0.4.0
func (f FieldDuration) Field() Field
type FieldError ¶ added in v0.4.0
func (FieldError) Field ¶ added in v0.4.0
func (f FieldError) Field() Field
type FieldFloat64 ¶ added in v0.4.0
func Float32 ¶ added in v0.4.0
func Float32(name string, value float32) FieldFloat64
Float32 adds a 32-bit floating point number field
func Float64 ¶ added in v0.4.0
func Float64(name string, value float64) FieldFloat64
Float64 adds a 64-bit floating point number field
func (FieldFloat64) Field ¶ added in v0.4.0
func (f FieldFloat64) Field() Field
type FieldInt64 ¶ added in v0.4.0
func Int ¶ added in v0.4.0
func Int(name string, value int) FieldInt64
Int adds a signed integer field
func Int8 ¶ added in v0.4.0
func Int8(name string, value int8) FieldInt64
Int8 adds an 8-bit signed integer field
func Int16 ¶ added in v0.4.0
func Int16(name string, value int16) FieldInt64
Int16 adds a 16-bit signed integer field
func Int32 ¶ added in v0.4.0
func Int32(name string, value int32) FieldInt64
Int32 adds a 32-bit signed integer field
func Int64 ¶ added in v0.4.0
func Int64(name string, value int64) FieldInt64
Int64 adds a 64-bit signed integer field
func (FieldInt64) Field ¶ added in v0.4.0
func (f FieldInt64) Field() Field
type FieldString ¶ added in v0.4.0
func String ¶ added in v0.4.0
func String(name string, value string) FieldString
String adds an escaped and quoted string field
func (FieldString) Field ¶ added in v0.4.0
func (f FieldString) Field() Field
type FieldTimeFormat ¶ added in v0.4.0
func Time ¶ added in v0.4.0
func Time(name string, value time.Time) FieldTimeFormat
Time adds a time.Time field that will output a string formatted using RFC 3339 (ISO 8601)
func TimeNano ¶ added in v0.4.0
func TimeNano(name string, value time.Time) FieldTimeFormat
TimeNano adds a time.Time field that will output a string formatted using RFC 3339 with nanosecond precision
func (FieldTimeFormat) Field ¶ added in v0.4.0
func (f FieldTimeFormat) Field() Field
type FieldTimeUnix ¶ added in v0.4.0
func TimeUnix ¶ added in v0.4.0
func TimeUnix(name string, value time.Time) FieldTimeUnix
TimeUnix adds a time.Time field that outputs as a unix epoch (unsigned integer)
func TimeUnixNano ¶ added in v0.4.0
func TimeUnixNano(name string, value time.Time) FieldTimeUnix
TimeUnixNano adds a time.Time field that outputs as a unix epoch with nanosecond precision (unsigned integer)
func (FieldTimeUnix) Field ¶ added in v0.4.0
func (f FieldTimeUnix) Field() Field
type FieldUint64 ¶ added in v0.4.0
func Byte ¶ added in v0.4.0
func Byte(name string, value byte) FieldUint64
Byte adds an 8-bit unsigned integer field
func Uint ¶ added in v0.4.0
func Uint(name string, value uint) FieldUint64
Uint adds an unsigned integer field
func Uint8 ¶ added in v0.4.0
func Uint8(name string, value uint8) FieldUint64
Uint8 adds an 8-bit unsigned integer field
func Uint16 ¶ added in v0.4.0
func Uint16(name string, value uint16) FieldUint64
Uint16 adds a 16-bit unsigned integer field
func Uint32 ¶ added in v0.4.0
func Uint32(name string, value uint32) FieldUint64
Uint32 adds a 32-bit unsigned integer field
func Uint64 ¶ added in v0.4.0
func Uint64(name string, value uint64) FieldUint64
Uint64 adds a 64-bit unsigned integer field
func (FieldUint64) Field ¶ added in v0.4.0
func (f FieldUint64) Field() Field
type Fielder ¶ added in v0.4.0
type Fielder interface {
Field() Field
}
Fielder is an interface used to add structured logging to calls to Logger methods
type FixedLine ¶
type FixedLine struct {
// contains filtered or unexported fields
}
FixedLine is a Logger that treats Transient level log data in a special way: - Transient level is never ignored, and always overwrites the same output line. - Non-Transient level is sent to the parent logger.
func (*FixedLine) RemoveFixedLine ¶ added in v0.3.0
func (l *FixedLine) RemoveFixedLine()
func (*FixedLine) SetMinLevel ¶
type FixedLineAdder ¶ added in v0.3.0
type FixedLineAdder interface {
AddFixedLine() Logger
}
FixedLineAdder is the interface for loggers that support fixing a line in place, for progress bars or other transient status messages.
type FixedLineRemover ¶ added in v0.3.0
type FixedLineRemover interface {
RemoveFixedLine()
}
FixedLineRemover is the interface that a fixed line logger must implement in order for the fixed line to be removed before app end.
type JSONPrinter ¶ added in v0.2.1
type Logger ¶
type Logger interface {
// Close ensures any buffers are flushed and any resources released.
// It is safe to call Close more than once (but consecutive calls do nothing).
Close()
// SetMinLevel sets the lowest Level that will be logged.
SetMinLevel(level Level) Logger
// Log is how all log lines are added.
Log(level Level, format string, a ...Fielder) Logger
// Transient et al are just shortcuts for calling Log with specific levels.
// Note that Fatal will never return, as it flushes any buffers then calls os.Exit(-1).
Transient(format string, a ...Fielder) Logger
Verbose(format string, a ...Fielder) Logger
Info(format string, a ...Fielder) Logger
Warning(format string, a ...Fielder) Logger
Error(format string, a ...Fielder) Logger
Fatal(format string, a ...Fielder)
}
func AddFixedLine ¶ added in v0.2.0
AddFixedLine adds a new logger on a fixed line, if supported. Else, returns passed in Logger.
func New ¶
New creates a Logger that writes to os.Stdout, depending on the NewLogger type passed to it: - Auto - if terminal detected on stdout, then colors and fixed lines are supported (else, uses Basic) - Basic - no colors or fixed lines, no buffering - JSON - no colors or fixed lines, no buffering, and each line is a valid JSON object Resulting Logger can be modified by including 1 or more NewOpts after the NewLogger type. The caller is responsible for calling Close() when done with the returned Logger.
func ParentOrSelf ¶ added in v0.2.0
type NullLogger ¶ added in v0.6.0
type NullLogger struct {
}
func (*NullLogger) Close ¶ added in v0.6.0
func (n *NullLogger) Close()
func (*NullLogger) Error ¶ added in v0.6.0
func (n *NullLogger) Error(format string, a ...Fielder) Logger
func (*NullLogger) Fatal ¶ added in v0.6.0
func (n *NullLogger) Fatal(format string, a ...Fielder)
func (*NullLogger) Info ¶ added in v0.6.0
func (n *NullLogger) Info(format string, a ...Fielder) Logger
func (*NullLogger) Log ¶ added in v0.6.0
func (n *NullLogger) Log(level Level, format string, a ...Fielder) Logger
func (*NullLogger) SetMinLevel ¶ added in v0.6.0
func (n *NullLogger) SetMinLevel(level Level) Logger
func (*NullLogger) Transient ¶ added in v0.6.0
func (n *NullLogger) Transient(format string, a ...Fielder) Logger
type Option ¶ added in v0.6.0
type Option byte
const ( // UseStdout sends all output to stdout (default). UseStdout Option = iota // UseStderr sends all output to stderr. UseStderr // Color enables use of ANSI commands to add color (default). Note that colors cannot be enabled when // using the Basic or JSON logger types, or if a NO_COLOR environment variable is present. Color // NoColor disables use of ANSI commands to add color. NoColor // ShowTimestamps enables the inclusion of time/date (default). Note that JSON type always adds timestamps. ShowTimestamps // HideTimestamps disables the inclusion of time/date. HideTimestamps // ShowLevel enables the inclusion of the log level of each log line (ie "[nfo]", "[WRN]", "[ERR]", etc). ShowLevel // HideLevel disables the inclusion of the log level with each log line. Note that JSON type always adds log level. HideLevel )
type TeeLogger ¶ added in v0.2.0
TeeLogger directs all traffic to both a primary and secondary logger
func (*TeeLogger) AddFixedLine ¶ added in v0.2.0
func (*TeeLogger) RemoveFixedLine ¶ added in v0.3.0
func (l *TeeLogger) RemoveFixedLine()
func (*TeeLogger) SetMinLevel ¶ added in v0.2.0
type TextPrinter ¶ added in v0.2.1
type Unbuffered ¶ added in v0.2.0
type Unbuffered struct {
// contains filtered or unexported fields
}
func NewUnbuffered ¶ added in v0.2.0
func NewUnbuffered(cfg Config, prn Printer) *Unbuffered
func (*Unbuffered) Close ¶ added in v0.2.0
func (l *Unbuffered) Close()
func (*Unbuffered) Error ¶ added in v0.4.0
func (l *Unbuffered) Error(msg string, fields ...Fielder) Logger
func (*Unbuffered) Fatal ¶ added in v0.4.0
func (l *Unbuffered) Fatal(msg string, fields ...Fielder)
func (*Unbuffered) Info ¶ added in v0.4.0
func (l *Unbuffered) Info(msg string, fields ...Fielder) Logger
func (*Unbuffered) Log ¶ added in v0.4.0
func (l *Unbuffered) Log(level Level, msg string, fields ...Fielder) Logger
func (*Unbuffered) SetMinLevel ¶ added in v0.2.0
func (l *Unbuffered) SetMinLevel(level Level) Logger
func (*Unbuffered) Transient ¶ added in v0.4.0
func (l *Unbuffered) Transient(msg string, fields ...Fielder) Logger
