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