1
0
mirror of https://github.com/jhillyerd/inbucket.git synced 2025-12-17 17:47:03 +00:00
Files
go-inbucket/log/logging.go
2012-10-22 18:07:16 -07:00

66 lines
1.3 KiB
Go

package log
import (
"log"
"strings"
)
type LogLevel int
const (
ERROR LogLevel = iota
WARN
INFO
TRACE
)
var MaxLogLevel LogLevel = TRACE
// SetLogLevel sets MaxLogLevel based on the provided string
func SetLogLevel(level string) (ok bool) {
switch strings.ToUpper(level) {
case "ERROR":
MaxLogLevel = ERROR
case "WARN":
MaxLogLevel = WARN
case "INFO":
MaxLogLevel = INFO
case "TRACE":
MaxLogLevel = TRACE
default:
Error("Unknown log level requested: %v", level)
return false
}
return true
}
// Error logs a message to the 'standard' Logger (always)
func Error(msg string, args ...interface{}) {
msg = "[ERROR] " + msg
log.Printf(msg, args...)
}
// Warn logs a message to the 'standard' Logger if MaxLogLevel is >= WARN
func Warn(msg string, args ...interface{}) {
if MaxLogLevel >= WARN {
msg = "[WARN ] " + msg
log.Printf(msg, args...)
}
}
// Info logs a message to the 'standard' Logger if MaxLogLevel is >= INFO
func Info(msg string, args ...interface{}) {
if MaxLogLevel >= INFO {
msg = "[INFO ] " + msg
log.Printf(msg, args...)
}
}
// Trace logs a message to the 'standard' Logger if MaxLogLevel is >= TRACE
func Trace(msg string, args ...interface{}) {
if MaxLogLevel >= TRACE {
msg = "[TRACE] " + msg
log.Printf(msg, args...)
}
}