Documentation
¶
Overview ¶
Package log implements a simple logger.
It implements an API somewhat similar to "github.com/google/glog" with a focus towards simplicity and integration with standard tools such as systemd.
There are command line flags (defined using the flag package) to control the behaviour of the default logger. By default, it will write to stderr without timestamps; this is suitable for systemd (or equivalent) logging.
Command-line flags:
-alsologtostderr also log to stderr, in addition to the file -logfile string file to log to (enables logtime) -logtime include the time when writing the log to stderr -logtosyslog string log to syslog, with the given tag -v int verbosity level (1 = debug)
Example ¶
package main import ( "blitiri.com.ar/go/log" ) func main() { log.Init() // only needed once. log.Debugf("debugging information: %v %v %v", 1, 2, 3) log.Infof("something normal happened") log.Errorf("something bad happened") if log.V(3) { // only entered if -v was >= 3. //expensiveDebugging() } }
Output:
Index ¶
- Constants
- Variables
- func Debugf(format string, a ...interface{})
- func Errorf(format string, a ...interface{}) error
- func Fatalf(format string, a ...interface{})
- func Infof(format string, a ...interface{})
- func Init()
- func Log(level Level, skip int, format string, a ...interface{})
- func V(level Level) bool
- type Level
- type Logger
- func (l *Logger) Close()
- func (l *Logger) Debugf(format string, a ...interface{})
- func (l *Logger) Errorf(format string, a ...interface{}) error
- func (l *Logger) Fatalf(format string, a ...interface{})
- func (l *Logger) Infof(format string, a ...interface{})
- func (l *Logger) Log(level Level, skip int, format string, a ...interface{}) error
- func (l *Logger) Reopen() error
- func (l *Logger) V(level Level) bool
Examples ¶
Constants ¶
const ( Fatal = Level(-2) Error = Level(-1) Info = Level(0) Debug = Level(1) )
Standard logging levels.
Variables ¶
var Default = &Logger{ w: os.Stderr, Level: Info, callerSkip: 1, LogCaller: true, LogLevel: true, LogTime: false, }
Default logger, used by the top-level functions below.
Functions ¶
func Debugf ¶
func Debugf(format string, a ...interface{})
Debugf is a convenient wrapper to Default.Debugf.
func Fatalf ¶
func Fatalf(format string, a ...interface{})
Fatalf is a convenient wrapper to Default.Fatalf.
func Infof ¶
func Infof(format string, a ...interface{})
Infof is a convenient wrapper to Default.Infof.
Types ¶
type Logger ¶
type Logger struct { // Minimum level to log. Messages below this level will be dropped. // Note this field is NOT thread safe, if you change it, it is strongly // recommended to do so right after creating the logger, and before it is // used. // The use of this field should be considered EXPERIMENTAL, the API for it // could change in the future. Level Level // Include timestamp in the log message. // The use of this field should be considered EXPERIMENTAL, the API for it // could change in the future. LogTime bool // Include the log level in the log message. // The use of this field should be considered EXPERIMENTAL, the API for it // could change in the future. LogLevel bool // Include the caller in the log message. // The use of this field should be considered EXPERIMENTAL, the API for it // could change in the future. LogCaller bool sync.Mutex // contains filtered or unexported fields }
A Logger represents a logging object that writes logs to a writer.
func NewSyslog ¶
NewSyslog creates a new Logger, which writes logs to syslog, using the given priority and tag.
func (*Logger) Errorf ¶
Errorf logs information at an Error level. It also returns an error constructed with the given message, in case it's useful for the caller.
func (*Logger) Fatalf ¶
Fatalf logs information at a Fatal level, and then exits the program with a non-0 exit code.
func (*Logger) Log ¶
Log the message into the logger, at the given level. This is low-level and should rarely be needed, but it's available to allow the caller to have more complex logic if needed. skip is the number of frames to skip when computing the file name and line number.