mirror of
https://github.com/foomo/contentserver.git
synced 2025-10-16 12:25:44 +00:00
80 lines
1.7 KiB
Go
80 lines
1.7 KiB
Go
package log
|
|
|
|
import (
|
|
"fmt"
|
|
"strings"
|
|
"time"
|
|
)
|
|
|
|
// LogLevel logging level enum
|
|
type Level int
|
|
|
|
const (
|
|
// LevelError an error - as bad as it gets
|
|
LevelError Level = 0
|
|
// LevelRecord put this to the logs in any case
|
|
LevelRecord = 1
|
|
// LevelWarning not that bad
|
|
LevelWarning = 2
|
|
// LevelNotice almost on debug level
|
|
LevelNotice = 3
|
|
// LevelDebug we are debugging
|
|
LevelDebug = 4
|
|
)
|
|
|
|
// SelectedLevel selected log level
|
|
var SelectedLevel Level = LevelDebug
|
|
|
|
var prefices = map[Level]string{
|
|
LevelRecord: "record : ",
|
|
LevelError: "error : ",
|
|
LevelWarning: "warning : ",
|
|
LevelNotice: "notice : ",
|
|
LevelDebug: "debug : ",
|
|
}
|
|
|
|
func log(msg string, level Level) string {
|
|
if level <= SelectedLevel {
|
|
prefix := time.Now().Format(time.RFC3339Nano) + " " + prefices[level]
|
|
lines := strings.Split(msg, "\n")
|
|
for i := 0; i < len(lines); i++ {
|
|
fmt.Println(prefix + lines[i])
|
|
}
|
|
}
|
|
return msg
|
|
}
|
|
|
|
func logThings(msgs []interface{}, level Level) string {
|
|
r := ""
|
|
for _, msg := range msgs {
|
|
r += "\n" + fmt.Sprint(msg)
|
|
}
|
|
r = strings.Trim(r, "\n")
|
|
return log(r, level)
|
|
}
|
|
|
|
// Debug write debug messages to the log
|
|
func Debug(msgs ...interface{}) string {
|
|
return logThings(msgs, LevelDebug)
|
|
}
|
|
|
|
// Notice write notice messages to the log
|
|
func Notice(msgs ...interface{}) string {
|
|
return logThings(msgs, LevelNotice)
|
|
}
|
|
|
|
// Warning write warning messages to the log
|
|
func Warning(msgs ...interface{}) string {
|
|
return logThings(msgs, LevelWarning)
|
|
}
|
|
|
|
// Record write record messages to the log
|
|
func Record(msgs ...interface{}) string {
|
|
return logThings(msgs, LevelRecord)
|
|
}
|
|
|
|
// Error write error messages to the log
|
|
func Error(msgs ...interface{}) string {
|
|
return logThings(msgs, LevelError)
|
|
}
|