Documentation ¶
Index ¶
- Variables
- func Fastrandn(x uint32) uint32
- func IsTerminal(fd uintptr) bool
- func Print(v ...interface{})
- func Printf(format string, v ...interface{})
- type ConsoleWriter
- type Context
- type Event
- func (e *Event) AnErr(key string, err error) *Event
- func (e *Event) Bool(key string, b bool) *Event
- func (e *Event) Bools(key string, b []bool) *Event
- func (e *Event) Bytes(key string, val []byte) *Event
- func (e *Event) Caller(depth int) *Event
- func (e *Event) Context(ctx Context) *Event
- func (e *Event) Dict(key string, ctx Context) *Event
- func (e *Event) Discard() *Event
- func (e *Event) Dur(key string, d time.Duration) *Event
- func (e *Event) Durs(key string, d []time.Duration) *Event
- func (e *Event) Enabled() bool
- func (e *Event) Err(err error) *Event
- func (e *Event) Errs(key string, errs []error) *Event
- func (e *Event) Float32(key string, f float32) *Event
- func (e *Event) Float64(key string, f float64) *Event
- func (e *Event) Floats32(key string, f []float32) *Event
- func (e *Event) Floats64(key string, f []float64) *Event
- func (e *Event) GoStringer(key string, val fmt.GoStringer) *Event
- func (e *Event) Hex(key string, val []byte) *Event
- func (e *Event) IPAddr(key string, ip net.IP) *Event
- func (e *Event) IPPrefix(key string, pfx net.IPNet) *Event
- func (e *Event) Int(key string, i int) *Event
- func (e *Event) Int16(key string, i int16) *Event
- func (e *Event) Int32(key string, i int32) *Event
- func (e *Event) Int64(key string, i int64) *Event
- func (e *Event) Int8(key string, i int8) *Event
- func (e *Event) Interface(key string, i interface{}) *Event
- func (e *Event) MACAddr(key string, ha net.HardwareAddr) *Event
- func (e *Event) Msg(msg string)
- func (e *Event) Msgf(format string, v ...interface{})
- func (e *Event) RawJSON(key string, b []byte) *Event
- func (e *Event) Stack(all bool) *Event
- func (e *Event) Str(key string, val string) *Event
- func (e *Event) Stringer(key string, val fmt.Stringer) *Event
- func (e *Event) Strs(key string, vals []string) *Event
- func (e *Event) Time(key string, t time.Time) *Event
- func (e *Event) TimeDiff(key string, t time.Time, start time.Time) *Event
- func (e *Event) TimeFormat(key string, timefmt string, t time.Time) *Event
- func (e *Event) Uint16(key string, i uint16) *Event
- func (e *Event) Uint32(key string, i uint32) *Event
- func (e *Event) Uint64(key string, i uint64) *Event
- func (e *Event) Uint8(key string, i uint8) *Event
- func (e *Event) Value() Context
- type FileWriter
- type GrpcLogger
- func (l *GrpcLogger) Error(args ...interface{})
- func (l *GrpcLogger) Errorf(format string, args ...interface{})
- func (l *GrpcLogger) Errorln(args ...interface{})
- func (l *GrpcLogger) Fatal(args ...interface{})
- func (l *GrpcLogger) Fatalf(format string, args ...interface{})
- func (l *GrpcLogger) Fatalln(args ...interface{})
- func (l *GrpcLogger) Info(args ...interface{})
- func (l *GrpcLogger) Infof(format string, args ...interface{})
- func (l *GrpcLogger) Infoln(args ...interface{})
- func (l *GrpcLogger) V(level int) bool
- func (l *GrpcLogger) Warning(args ...interface{})
- func (l *GrpcLogger) Warningf(format string, args ...interface{})
- func (l *GrpcLogger) Warningln(args ...interface{})
- type Level
- type Logger
- func (l *Logger) Debug() (e *Event)
- func (l *Logger) Error() (e *Event)
- func (l *Logger) Fatal() (e *Event)
- func (l *Logger) Info() (e *Event)
- func (l *Logger) Print(v ...interface{})
- func (l *Logger) Printf(format string, v ...interface{})
- func (l *Logger) SetLevel(level Level)
- func (l *Logger) Warn() (e *Event)
- func (l *Logger) WithLevel(level Level) (e *Event)
- type TSVEvent
- func (e *TSVEvent) Bool(b bool) *TSVEvent
- func (e *TSVEvent) Bytes(val []byte) *TSVEvent
- func (e *TSVEvent) Float32(f float32) *TSVEvent
- func (e *TSVEvent) Float64(f float64) *TSVEvent
- func (e *TSVEvent) IPAddr(ip net.IP) *TSVEvent
- func (e *TSVEvent) Int(i int) *TSVEvent
- func (e *TSVEvent) Int16(i int16) *TSVEvent
- func (e *TSVEvent) Int32(i int32) *TSVEvent
- func (e *TSVEvent) Int64(i int64) *TSVEvent
- func (e *TSVEvent) Int8(i int8) *TSVEvent
- func (e *TSVEvent) Msg()
- func (e *TSVEvent) Str(val string) *TSVEvent
- func (e *TSVEvent) Timestamp() *TSVEvent
- func (e *TSVEvent) TimestampMS() *TSVEvent
- func (e *TSVEvent) Uint16(i uint16) *TSVEvent
- func (e *TSVEvent) Uint32(i uint32) *TSVEvent
- func (e *TSVEvent) Uint64(i uint64) *TSVEvent
- func (e *TSVEvent) Uint8(i uint8) *TSVEvent
- type TSVLogger
- type Writerdeprecated
Constants ¶
This section is empty.
Variables ¶
var DefaultLogger = Logger{ Level: DebugLevel, Caller: 0, TimeField: "", TimeFormat: "", Timestamp: false, Writer: os.Stderr, }
DefaultLogger is the global logger.
Functions ¶
func IsTerminal ¶
IsTerminal returns whether the given file descriptor is a terminal.
Types ¶
type ConsoleWriter ¶
type ConsoleWriter struct { // ColorOutput determines if used colorized output. ColorOutput bool // Deprecated: Use ColorOutput instead. ANSIColor bool // QuoteString determines if quoting string values. QuoteString bool // EndWithMessage determines if output message in the end. EndWithMessage bool }
ConsoleWriter parses the JSON input and writes it in an (optionally) colorized, human-friendly format to os.Stderr
type Event ¶
type Event struct {
// contains filtered or unexported fields
}
Event represents a log event. It is instanced by one of the level method of Logger and finalized by the Msg or Msgf method.
func NewContext ¶ added in v1.0.20
func NewContext() (e *Event)
NewContext starts a new contextual event.
func (*Event) AnErr ¶ added in v1.0.18
AnErr adds the field key with serialized err to the logger context.
func (*Event) Errs ¶
Errs adds the field key with errs as an array of serialized errors to the event.
func (*Event) GoStringer ¶ added in v1.0.17
func (e *Event) GoStringer(key string, val fmt.GoStringer) *Event
GoStringer adds the field key with val.GoStringer() to the event.
func (*Event) IPPrefix ¶ added in v1.0.10
IPPrefix adds IPv4 or IPv6 Prefix (address and mask) to the event
func (*Event) MACAddr ¶ added in v1.0.10
func (e *Event) MACAddr(key string, ha net.HardwareAddr) *Event
MACAddr adds MAC address to the event
func (*Event) Msgf ¶
Msgf sends the event with formatted msg added as the message field if not empty.
func (*Event) Stack ¶ added in v1.0.10
Stack enables stack trace printing for the error passed to Err().
func (*Event) Stringer ¶ added in v1.0.15
Stringer adds the field key with val.String() to the event.
func (*Event) TimeDiff ¶ added in v1.0.10
TimeDiff adds the field key with positive duration between time t and start. If time t is not greater than start, duration will be 0. Duration format follows the same principle as Dur().
func (*Event) TimeFormat ¶ added in v1.0.2
TimeFormat append append t formated as string using timefmt.
type FileWriter ¶ added in v1.0.8
type FileWriter struct { // Filename is the file to write logs to. Backup log files will be retained // in the same directory. Filename string // MaxSize is the maximum size in megabytes of the log file before it gets // rotated. MaxSize int64 // MaxBackups is the maximum number of old log files to retain. The default // is to retain all old log files MaxBackups int // FileMode represents the file's mode and permission bits. The default // mode is 0644 FileMode os.FileMode // LocalTime determines if the time used for formatting the timestamps in // backup files is the computer's local time. The default is to use UTC // time. LocalTime bool // HostName determines if the hostname used for formatting in backup files. HostName bool // contains filtered or unexported fields }
FileWriter is an io.WriteCloser that writes to the specified filename.
FileWriter opens or creates the logfile on first Write. If the file exists and is less than MaxSize megabytes, FileWriter will open and append to that file. If the file exists and its size is >= MaxSize megabytes, the file is renamed by putting the current time in a timestamp in the name immediately before the file's extension (or the end of the filename if there's no extension). A new log file is then created using original filename.
Whenever a write would cause the current log file exceed MaxSize megabytes, the current file is closed, renamed, and a new log file created with the original name. Thus, the filename you give FileWriter is always the "current" log file.
Backups use the log file name given to FileWriter, in the form `name.timestamp.ext` where name is the filename without the extension, timestamp is the time at which the log was rotated formatted with the time.Time format of `2006-01-02T15-04-05` and the extension is the original extension. For example, if your FileWriter.Filename is `/var/log/foo/server.log`, a backup created at 6:30pm on Nov 11 2016 would use the filename `/var/log/foo/server.2016-11-04T18-30-00.log`
Cleaning Up Old Log Files ¶
Whenever a new logfile gets created, old log files may be deleted. The most recent files according to the encoded timestamp will be retained, up to a number equal to MaxBackups (or all of them if MaxBackups is 0). Any files with an encoded timestamp older than MaxAge days are deleted, regardless of MaxBackups. Note that the time encoded in the timestamp is the rotation time, which may differ from the last time that file was written to.
func (*FileWriter) Close ¶ added in v1.0.8
func (w *FileWriter) Close() (err error)
Close implements io.Closer, and closes the current logfile.
func (*FileWriter) Rotate ¶ added in v1.0.8
func (w *FileWriter) Rotate() (err error)
Rotate causes Logger to close the existing log file and immediately create a new one. This is a helper function for applications that want to initiate rotations outside of the normal rotation rules, such as in response to SIGHUP. After rotating, this initiates compression and removal of old log files according to the configuration.
func (*FileWriter) Write ¶ added in v1.0.8
func (w *FileWriter) Write(p []byte) (n int, err error)
Write implements io.FileWriter. If a write would cause the log file to be larger than MaxSize, the file is closed, renamed to include a timestamp of the current time, and a new log file is created using the original log file name. If the length of the write is greater than MaxSize, an error is returned.
type GrpcLogger ¶
type GrpcLogger struct {
Logger Logger
}
GrpcLogger implements methods to satisfy interface google.golang.org/grpc/grpclog.LoggerV2.
func (*GrpcLogger) Error ¶
func (l *GrpcLogger) Error(args ...interface{})
Error logs to ERROR log. Arguments are handled in the manner of fmt.Print.
func (*GrpcLogger) Errorf ¶
func (l *GrpcLogger) Errorf(format string, args ...interface{})
Errorf logs to ERROR log. Arguments are handled in the manner of fmt.Printf.
func (*GrpcLogger) Errorln ¶
func (l *GrpcLogger) Errorln(args ...interface{})
Errorln logs to ERROR log. Arguments are handled in the manner of fmt.Println.
func (*GrpcLogger) Fatal ¶
func (l *GrpcLogger) Fatal(args ...interface{})
Fatal logs to ERROR log. Arguments are handled in the manner of fmt.Print. gRPC ensures that all Fatal logs will exit with os.Exit(1). Implementations may also call os.Exit() with a non-zero exit code.
func (*GrpcLogger) Fatalf ¶
func (l *GrpcLogger) Fatalf(format string, args ...interface{})
Fatalf logs to ERROR log. Arguments are handled in the manner of fmt.Printf. gRPC ensures that all Fatal logs will exit with os.Exit(1). Implementations may also call os.Exit() with a non-zero exit code.
func (*GrpcLogger) Fatalln ¶
func (l *GrpcLogger) Fatalln(args ...interface{})
Fatalln logs to ERROR log. Arguments are handled in the manner of fmt.Println. gRPC ensures that all Fatal logs will exit with os.Exit(1). Implementations may also call os.Exit() with a non-zero exit code.
func (*GrpcLogger) Info ¶
func (l *GrpcLogger) Info(args ...interface{})
Info logs to INFO log. Arguments are handled in the manner of fmt.Print.
func (*GrpcLogger) Infof ¶
func (l *GrpcLogger) Infof(format string, args ...interface{})
Infof logs to INFO log. Arguments are handled in the manner of fmt.Printf.
func (*GrpcLogger) Infoln ¶
func (l *GrpcLogger) Infoln(args ...interface{})
Infoln logs to INFO log. Arguments are handled in the manner of fmt.Println.
func (*GrpcLogger) V ¶
func (l *GrpcLogger) V(level int) bool
V reports whether verbosity level l is at least the requested verbose level.
func (*GrpcLogger) Warning ¶
func (l *GrpcLogger) Warning(args ...interface{})
Warning logs to WARNING log. Arguments are handled in the manner of fmt.Print.
func (*GrpcLogger) Warningf ¶
func (l *GrpcLogger) Warningf(format string, args ...interface{})
Warningf logs to WARNING log. Arguments are handled in the manner of fmt.Printf.
func (*GrpcLogger) Warningln ¶
func (l *GrpcLogger) Warningln(args ...interface{})
Warningln logs to WARNING log. Arguments are handled in the manner of fmt.Println.
type Level ¶
type Level uint32
Level defines log levels.
const ( // DebugLevel defines debug log level. DebugLevel Level // InfoLevel defines info log level. InfoLevel // WarnLevel defines warn log level. WarnLevel // ErrorLevel defines error log level. ErrorLevel // FatalLevel defines fatal log level. FatalLevel )
func ParseLevel ¶
ParseLevel converts a level string into a log Level value. returns an error if the input string does not match known values.
type Logger ¶
type Logger struct { // Level defines log levels. Level Level // Timestamp determines if time is formatted as an UNIX timestamp as integer. // If set, the value of TimeField and TimeFormat will be ignored. Timestamp bool // Caller determines if adds the file:line of the "caller" key. Caller int // TimeField defines the time filed name in output. It uses "time" in if empty. TimeField string // TimeFormat specifies the time format in output. It uses time.RFC3389 in if empty. TimeFormat string // Writer specifies the writer of output. It uses os.Stderr in if empty. Writer io.Writer }
A Logger represents an active logging object that generates lines of JSON output to an io.Writer.
func (*Logger) Print ¶
func (l *Logger) Print(v ...interface{})
Print sends a log event using debug level and no extra field. Arguments are handled in the manner of fmt.Print.
func (*Logger) Printf ¶
Printf sends a log event using debug level and no extra field. Arguments are handled in the manner of fmt.Printf.
type TSVEvent ¶
type TSVEvent struct {
// contains filtered or unexported fields
}
TSVEvent represents a tsv log event. It is instanced by one of TSVLogger and finalized by the Msg method.
func (*TSVEvent) TimestampMS ¶ added in v1.0.8
TimestampMS adds the current time with milliseconds as UNIX timestamp
type TSVLogger ¶
TSVLogger represents an active logging object that generates lines of TSV output to an io.Writer.