80 lines
1.3 KiB
Go
80 lines
1.3 KiB
Go
package logb
|
|
|
|
import (
|
|
"fmt"
|
|
"io"
|
|
"os"
|
|
)
|
|
|
|
var level Level = INFO
|
|
var writer io.Writer = os.Stderr
|
|
|
|
func Set(l ...Level) {
|
|
if len(l) < 1 {
|
|
l = []Level{INFO}
|
|
}
|
|
level.Set(l[0])
|
|
}
|
|
|
|
func SetWriter(w io.Writer) {
|
|
writer = w
|
|
}
|
|
|
|
func Info(args ...interface{}) {
|
|
log(INFO, args...)
|
|
}
|
|
|
|
func Warn(args ...interface{}) {
|
|
log(WARN, args...)
|
|
}
|
|
|
|
func Error(args ...interface{}) {
|
|
log(ERROR, args...)
|
|
}
|
|
|
|
func Debug(args ...interface{}) {
|
|
log(DEBUG, args...)
|
|
}
|
|
|
|
func Verbose(args ...interface{}) {
|
|
log(VERBOSE, args...)
|
|
}
|
|
|
|
func Infof(form string, args ...interface{}) {
|
|
logf(INFO, form, args...)
|
|
}
|
|
|
|
func Warnf(form string, args ...interface{}) {
|
|
logf(WARN, form, args...)
|
|
}
|
|
|
|
func Errorf(form string, args ...interface{}) {
|
|
logf(ERROR, form, args...)
|
|
}
|
|
|
|
func Debugf(form string, args ...interface{}) {
|
|
logf(DEBUG, form, args...)
|
|
}
|
|
|
|
func Verbosef(form string, args ...interface{}) {
|
|
logf(VERBOSE, form, args...)
|
|
}
|
|
|
|
func log(lvl Level, args ...interface{}) {
|
|
v := ""
|
|
if len(args) > 0 {
|
|
args = append([]interface{}{}, args...)
|
|
v = fmt.Sprint(args)
|
|
v = v[1 : len(v)-1]
|
|
}
|
|
logf(lvl, "%s", v)
|
|
}
|
|
|
|
func logf(lvl Level, form string, args ...interface{}) {
|
|
if !level.Should(lvl) {
|
|
return
|
|
}
|
|
form = fmt.Sprintf("[%v] %s\n", lvl.String()[:3], form)
|
|
fmt.Fprintf(writer, form, args...)
|
|
}
|