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 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 attempts to overwrite the same line in the terminal, allowing progress bars and other simple UI for the human to consume.
If the Printer's CanUseAnsi is false, then it simply redirects to the normal behavior of the parent Buffered Logger.
If the Printer's CanUseAnsi is true, then the Transient level is always printed, regardless of the MinLevel. This allows progress bars that do not pollute logs with garbage when not connected to a terminal.
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 Buffered logger that writes to os.Stdout, and autodetects any attached Terminal on stdout to decide if ANSI should be used. The caller is responsible for calling Close() before the process ends.
func ParentOrSelf ¶ added in v0.2.0
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(w io.Writer, 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
