log

package module
v1.7.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 23, 2022 License: MIT Imports: 9 Imported by: 21

Documentation

Overview

Package log is a modification of the log package included in the Go standard library, adding support for leveled logging, colorized output and JSON formatting. A predefined 'standard' logger which is accessible through helper functions Error[f|ln], Info[f|ln], Debug[f|ln], and Trace[f|ln]. The standard logger writes to standard error and prints the filename and linenumber of the call site of each logged message. Every log message is output on a separate line: if the message being printed does not end in a newline, the logger will add one.

Index

Constants

View Source
const (
	Ldate         = 1 << iota             // the date in the local time zone: 2009/01/23
	Ltime                                 // the time in the local time zone: 01:23:23
	Lmicroseconds                         // microsecond resolution: 01:23:23.123123.  assumes Ltime.
	Llongfile                             // full file name and line number: /a/b/c/d.go:23
	Lshortfile                            // final file name element and line number: d.go:23. overrides Llongfile
	LUTC                                  // if Ldate or Ltime is set, use UTC rather than the local time zone
	LJSON                                 // JSON encode log records
	LstdFlags     = Ldate | Ltime | LJSON // initial values for the standard logger
)

These flags define which text to prefix to each log entry generated by the Logger. Bits are or'ed together to control what's printed. There is no control over the order they appear (the order listed here) or the format they present (as described in the comments). The prefix is followed by a colon only when Llongfile or Lshortfile is specified. For example, flags Ldate | Ltime (or LstdFlags) produce,

2009/01/23 01:23:23 message

while flags Ldate | Ltime | Lmicroseconds | Llongfile produce,

2009/01/23 01:23:23.123123 /a/b/c/d.go:23: message

Variables

This section is empty.

Functions

func ClearFlag

func ClearFlag(flag int)

ClearFlag clears the flag on the standard logger

func Debug

func Debug(v ...interface{})

Debug calls Output to print to the standard logger.

func Debugf

func Debugf(format string, v ...interface{})

Debugf calls Output to print to the standard logger. Arguments are handled in the manner of fmt.Printf.

func Error

func Error(v ...interface{})

Error calls Output to print to the standard logger.

func Errorf

func Errorf(format string, v ...interface{})

Errorf calls Output to print to the standard logger. Arguments are handled in the manner of fmt.Printf.

func Fatal

func Fatal(v ...interface{})

Fatal calls Output to print to the standard logger.

func Fatalf

func Fatalf(format string, v ...interface{})

Fatalf calls Output to print to the standard logger. Arguments are handled in the manner of fmt.Printf.

func HasFlag

func HasFlag(flag int) bool

HasFlag returns true if flag is set on the standard logger

func Info

func Info(v ...interface{})

Info calls Output to print to the standard logger.

func Infof

func Infof(format string, v ...interface{})

Infof calls Output to print to the standard logger. Arguments are handled in the manner of fmt.Printf.

func Loggable

func Loggable(level Level) bool

Loggable calls Loggable on the standard logger

func Output

func Output(calldepth int, level, s string) error

Output writes the output for a logging event. The string s contains the text to print after the prefix specified by the flags of the Logger. A newline is appended if the last character of s is not already a newline. Calldepth is the count of the number of frames to skip when computing the file name and line number if Llongfile or Lshortfile is set; a value of 1 will print the details for the caller of Output.

func SetColorize

func SetColorize(v bool)

SetColorize enables/disables colorized log output by level

func SetFlags

func SetFlags(flag int)

SetFlags sets the flags on the standard logger

func SetLevel

func SetLevel(v Level)

SetLevel sets the curren log level of the standard loggers

func SetOutput

func SetOutput(w io.Writer)

SetOutput sets the output destination for the standard logger.

func SetPrefix

func SetPrefix(pre string)

SetPrefix sets the log prefix of the standard logger

func ToggleFlag

func ToggleFlag(flag int)

ToggleFlag toggles the current value of flag on the standard logger

func Trace

func Trace(v ...interface{})

Trace calls Output to print to the standard logger.

func Tracef

func Tracef(format string, v ...interface{})

Tracef calls Output to print to the standard logger. Arguments are handled in the manner of fmt.Printf.

func Warning

func Warning(v ...interface{})

Warning calls Output to print to the standard logger.

func Warningf

func Warningf(format string, v ...interface{})

Warningf calls Output to print to the standard logger. Arguments are handled in the manner of fmt.Printf.

Types

type Level

type Level int

Level is the type for log levels

const (
	None Level = iota
	FatalLevel
	ErrorLevel
	WarnLevel
	InfoLevel
	DebugLevel
	TraceLevel
)

the available log levels in increasing level of verbosity

func GetLevel

func GetLevel() Level

GetLevel gets the current log level of the standard logger

func (*Level) Set

func (v *Level) Set(value string) error

Set the log level given by the value string

func (Level) String

func (v Level) String() (name string)

implement flag.Value interface

type Logger

type Logger struct {
	// contains filtered or unexported fields
}

A Logger represents an active logging object that generates lines of output to an io.Writer. Each logging operation makes a single call to the Writer's Write method. Calldepth is the count of the number of frames to skip when computing the file name and line number if Llongfile or Lshortfile is set. A Logger can be used simultaneously from multiple goroutines; it guarantees to serialize access to the Writer. This logger adds support for leveled logging with optional JSON formatting and colorized output if the writer is a terminal

func DefaultLogger

func DefaultLogger() *Logger

DefaultLogger returns the default standard logger

func New

func New(out io.Writer, prefix string, flag int) (logger *Logger)

New creates a new Logger. The out variable sets the destination to which log data will be written. The prefix appears at the beginning of each generated log line. The flag argument defines the logging properties.

func (*Logger) ClearFlag

func (l *Logger) ClearFlag(flag int)

ClearFlag clears a flag for the logger

func (*Logger) Debug

func (l *Logger) Debug(v ...interface{})

Debug calls l.Output to conditionally print message string to the logger

func (*Logger) Debugf

func (l *Logger) Debugf(format string, v ...interface{})

Debugf calls l.Output to print to the logger. Arguments are handled in the manner of fmt.Printf.

func (*Logger) Error

func (l *Logger) Error(v ...interface{})

Error calls l.Output to conditionally print message string to the logger

func (*Logger) Errorf

func (l *Logger) Errorf(format string, v ...interface{})

Errorf calls l.Output to print to the logger. Arguments are handled in the manner of fmt.Printf.

func (*Logger) Fatal

func (l *Logger) Fatal(v ...interface{})

Fatal calls l.Output to unconditionally print to the logger, then calls os.Exit(1)

func (*Logger) Fatalf

func (l *Logger) Fatalf(format string, v ...interface{})

Fatalf calls l.Output to print to the logger. Arguments are handled in the manner of fmt.Printf.

func (*Logger) Flags

func (l *Logger) Flags() int

Flags returns the output flags for the logger.

func (*Logger) HasFlag

func (l *Logger) HasFlag(flag int) bool

HasFlag returns true of flag is set

func (*Logger) Info

func (l *Logger) Info(v ...interface{})

Info calls l.Output to conditionally print message string to the logger

func (*Logger) Infof

func (l *Logger) Infof(format string, v ...interface{})

Infof calls l.Output to print to the logger. Arguments are handled in the manner of fmt.Printf.

func (*Logger) Level

func (l *Logger) Level() Level

Level returns the current log level of logger

func (*Logger) Loggable

func (l *Logger) Loggable(level Level) bool

Loggable return true if the given level should be logged at the current log level of the logger; for example, if current log level is Info then calls to Loggable(log.InfoLevel) and Loggable(log.ErrorLevel) would return true while Loggable(log.DebugLevel) would return false

func (*Logger) Output

func (l *Logger) Output(calldepth int, level, s string) error

Output writes the output for a logging event. The string level is the log level of the caller. The string s contains the text to print after the prefix set by the flags of the Logger. A newline is appended if the last character of s is not already a newline. Calldepth is used to recover the PC and is provided for generality, although at the moment on all pre-defined paths it will be 2.

func (*Logger) Prefix

func (l *Logger) Prefix() string

Prefix returns the output prefix for the logger.

func (*Logger) SetColorize

func (l *Logger) SetColorize(enabled bool)

SetColorize enables/disables colorized output to a terminal writer

func (*Logger) SetFlags

func (l *Logger) SetFlags(flag int)

SetFlags sets the output flags for the logger.

func (*Logger) SetLevel

func (l *Logger) SetLevel(v Level)

SetLevel sets the current log level of logger

func (*Logger) SetOutput

func (l *Logger) SetOutput(w io.Writer)

SetOutput sets the output destination for the logger.

func (*Logger) SetPrefix

func (l *Logger) SetPrefix(prefix string)

SetPrefix sets the output prefix for the logger.

func (*Logger) ToggleFlag

func (l *Logger) ToggleFlag(flag int)

ToggleFlag toggles the current setting of flag

func (*Logger) Trace

func (l *Logger) Trace(v ...interface{})

Trace calls l.Output to conditionally print message string to the logger

func (*Logger) Tracef

func (l *Logger) Tracef(format string, v ...interface{})

Tracef calls l.Output to print to the logger. Arguments are handled in the manner of fmt.Printf.

func (*Logger) Warning

func (l *Logger) Warning(v ...interface{})

Warning calls l.Output to conditionally print message string to the logger

func (*Logger) Warningf

func (l *Logger) Warningf(format string, v ...interface{})

Warningf is present to support the Badger Logger interface which requires it; we treat Warningf == Errorf

func (*Logger) Writer

func (l *Logger) Writer() io.Writer

Writer returns the output destination for the logger.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL