1
0
Fork 0
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

104 lines
1.7 KiB
Go

package log
import (
"io"
"log"
)
// Log levels
const (
TRACE = iota // 0
DEBUG = iota // 1
INFO = iota // 2
WARN = iota // 3
ERROR = iota // 4
)
// Level set for logs
var Level = TRACE
// SetLevel sets the log level
// given a string
func SetLevel(level string) {
switch level {
case "TRACE":
Level = TRACE
case "DEBUG":
Level = DEBUG
case "INFO":
Level = INFO
case "WARN":
Level = WARN
case "ERROR":
Level = ERROR
default:
Level = TRACE
}
}
// SetOutput set the output destination
// of logs
func SetOutput(w io.Writer) {
log.SetOutput(w)
}
// Tracef writes a formatted log on TRACE level
func Tracef(format string, v ...interface{}) {
if Level <= TRACE {
log.Printf("[TRACE] "+format, v...)
}
}
// Trace writes a log on TRACE level
func Trace(s string) {
Tracef(s)
}
// Debugf writes a formatted log on DEBUG level
func Debugf(format string, v ...interface{}) {
if Level <= DEBUG {
log.Printf("[DEBUG] "+format, v...)
}
}
// Debug writes a log on DEBUG level
func Debug(s string) {
Debugf(s)
}
// Infof writes a formatted log on INFO level
func Infof(format string, v ...interface{}) {
if Level <= INFO {
log.Printf("[INFO ] "+format, v...)
}
}
// Info write a log on INFO level
func Info(s string) {
Infof(s)
}
// Warnf writes a formatted log on WARN level
func Warnf(format string, v ...interface{}) {
if Level <= WARN {
log.Printf("[WARN ] "+format, v...)
}
}
// Warn write a log on WARN level
func Warn(s string) {
Warnf(s)
}
// Errorf writes a formatted log on ERROR level
func Errorf(format string, v ...interface{}) {
if Level <= ERROR {
log.Printf("[ERROR] "+format, v...)
}
}
// Error write a log on ERROR level
func Error(s string) {
Errorf(s)
}