mirror of
https://github.com/jhillyerd/inbucket.git
synced 2025-12-17 17:47:03 +00:00
66 lines
1.3 KiB
Go
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...)
|
|
}
|
|
}
|