# README
log
Installation
go get -u github.com/no-src/log
Quick Start
Current support following loggers
For example, init a console logger, to write logs.
package main
import (
"errors"
"github.com/no-src/log"
"github.com/no-src/log/level"
)
func main() {
// init console logger as default logger
// replace the line of code with any logger you need
log.InitDefaultLogger(log.NewConsoleLogger(level.DebugLevel))
defer log.Close()
text := "hello world"
// use default logger to write logs
log.Debug("%s, test debug log", text)
log.Info("%s, test info log", text)
log.Warn("%s, test warn log", text)
log.Error(errors.New("log err"), "%s, test error log", text)
log.ErrorIf(errors.New("log err"), "%s, test error log", text)
log.Log("%s, test log log", text)
}
Logger
Empty Logger
Init empty logger as default logger.
log.InitDefaultLogger(log.NewEmptyLogger())
Console Logger
Init console logger as default logger.
log.InitDefaultLogger(log.NewConsoleLogger(level.DebugLevel))
File Logger
Init file logger as default logger.
if logger, err := log.NewFileLogger(level.DebugLevel, "./logs", "default_"); err == nil {
log.InitDefaultLogger(logger)
} else {
log.Error(err, "init file logger error")
}
Multi Logger
Init multi logger as default logger.
if logger, err := log.NewFileLogger(level.DebugLevel, "./logs", "multi_"); err == nil {
log.InitDefaultLogger(log.NewMultiLogger(log.NewConsoleLogger(level.DebugLevel), logger))
} else {
log.Error(err, "init file logger error")
}
Sample Logger
Init console logger as default logger and set the sample rate, default is 1
.
log.InitDefaultLoggerWithSample(log.NewConsoleLogger(level.DebugLevel), 0.6)
Use default logger to write logs by random sampling.
text := "hello world"
log.DebugSample("[sample] %s, test debug log", text)
log.InfoSample("[sample] %s, test info log", text)
log.WarnSample("[sample] %s, test warn log", text)
log.ErrorSample(errors.New("log err"), "[sample] %s, test error log", text)
log.ErrorIfSample(errors.New("log err from ErrorIfSample"), "[sample] %s, test error log", text)
# Functions
Close close the current logger.
CreateLoggerFromConfig create a logger from config file.
Debug write the debug log.
DebugSample write the debug log by random sampling.
DefaultLogger return the global default logger.
DefaultSampleLogger return the global default sample logger.
Error write the error log.
ErrorIf write the error log if err is not nil.
ErrorIfSample write the error log by random sampling if err is not nil.
ErrorSample write the error log by random sampling.
Info write the info log.
InfoSample write the info log by random sampling.
InitDefaultLogger init a default logger if not specified, default is consoleLogger with InfoLevel, and default sample rate is 1.
InitDefaultLoggerWithSample init a default logger and sample logger if not specified, default is consoleLogger with InfoLevel, and default sample rate is 1.
Log write the log without level.
NewConsoleLogger get a console logger.
NewDefaultSampleLogger get a sample logger with custom sample rate.
NewEmptyLogger get an empty logger, there is nothing to do.
NewFileLogger get a default file logger, auto flush logs to file per 3 seconds by default.
NewFileLoggerWithAutoFlush get a file logger.
NewFileLoggerWithOption get a file logger with option.
NewMultiLogger get a multi logger, write log to multiple loggers.
NewSampleLogger get a sample logger with custom sample rate and sample function.
Warn write the warn log.
WarnSample write the warn log by random sampling.