Basic interface
This commit is contained in:
parent
aae05d71d2
commit
a334e57ece
|
@ -0,0 +1,68 @@
|
||||||
|
package slog
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"io"
|
||||||
|
"os"
|
||||||
|
)
|
||||||
|
|
||||||
|
type SLogLevel int
|
||||||
|
|
||||||
|
const (
|
||||||
|
ERROR SLogLevel = iota
|
||||||
|
WARN
|
||||||
|
INFO
|
||||||
|
DEBUG
|
||||||
|
)
|
||||||
|
|
||||||
|
var level = ERROR
|
||||||
|
var loggers = []io.Writer{os.Stdout}
|
||||||
|
|
||||||
|
func log(level SLogLevel, format string, a ...interface{}) (err error) {
|
||||||
|
err = nil
|
||||||
|
|
||||||
|
if level > level {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, l := range loggers {
|
||||||
|
msg := fmt.Sprintf(format, a...)
|
||||||
|
if _, err = l.Write([]byte(msg)); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
func LOG_ERROR(format string, a ...interface{}) {
|
||||||
|
log(ERROR, "[ERROR] - "+format, a...)
|
||||||
|
}
|
||||||
|
|
||||||
|
func LOG_WARN(format string, a ...interface{}) {
|
||||||
|
log(WARN, "[WARN] - "+format, a...)
|
||||||
|
}
|
||||||
|
|
||||||
|
func LOG_INFO(format string, a ...interface{}) {
|
||||||
|
log(INFO, "[INFO] - "+format, a...)
|
||||||
|
}
|
||||||
|
|
||||||
|
func LOG_DEBUG(format string, a ...interface{}) {
|
||||||
|
log(DEBUG, "[DEBUG] - "+format, a...)
|
||||||
|
}
|
||||||
|
|
||||||
|
func SetLevel(level SLogLevel) {
|
||||||
|
level = level
|
||||||
|
}
|
||||||
|
|
||||||
|
func AddLogger(logger io.Writer) {
|
||||||
|
loggers = append(loggers, logger)
|
||||||
|
}
|
||||||
|
|
||||||
|
func SetLoggers(loggers []io.Writer) {
|
||||||
|
loggers = loggers
|
||||||
|
}
|
||||||
|
|
||||||
|
func ClearLoggers() {
|
||||||
|
loggers = []io.Writer{}
|
||||||
|
}
|
Loading…
Reference in New Issue