mirror of
https://github.com/foomo/contentserver.git
synced 2025-10-16 12:25:44 +00:00
90 lines
1.8 KiB
Go
90 lines
1.8 KiB
Go
package log
|
|
|
|
import (
|
|
"fmt"
|
|
"strings"
|
|
"time"
|
|
)
|
|
|
|
var logLevel int = LOG_LEVEL_DEBUG
|
|
var numErrors int64 = 0
|
|
|
|
const (
|
|
LOG_LEVEL_ERROR = 0
|
|
LOG_LEVEL_NAME_ERROR = "error"
|
|
LOG_LEVEL_RECORD = 1
|
|
LOG_LEVEL_NAME_RECORD = "record"
|
|
LOG_LEVEL_WARNING = 2
|
|
LOG_LEVEL_NAME_WARNING = "warning"
|
|
LOG_LEVEL_NOTICE = 3
|
|
LOG_LEVEL_NAME_NOTICE = "notice"
|
|
LOG_LEVEL_DEBUG = 4
|
|
LOG_LEVEL_NAME_DEBUG = "debug"
|
|
)
|
|
|
|
var prefices = map[int]string{
|
|
LOG_LEVEL_RECORD: "record : ",
|
|
LOG_LEVEL_ERROR: "error : ",
|
|
LOG_LEVEL_WARNING: "warning : ",
|
|
LOG_LEVEL_NOTICE: "notice : ",
|
|
LOG_LEVEL_DEBUG: "debug : ",
|
|
}
|
|
|
|
var logLevelMap = map[string]int{
|
|
LOG_LEVEL_NAME_ERROR: LOG_LEVEL_ERROR,
|
|
LOG_LEVEL_NAME_RECORD: LOG_LEVEL_RECORD,
|
|
LOG_LEVEL_NAME_WARNING: LOG_LEVEL_WARNING,
|
|
LOG_LEVEL_NAME_NOTICE: LOG_LEVEL_NOTICE,
|
|
LOG_LEVEL_NAME_DEBUG: LOG_LEVEL_DEBUG,
|
|
}
|
|
|
|
func GetLogLevelByName(name string) int {
|
|
if level, ok := logLevelMap[name]; ok {
|
|
return level
|
|
} else {
|
|
return LOG_LEVEL_RECORD
|
|
}
|
|
|
|
}
|
|
|
|
func log(msg string, level int) string {
|
|
if level <= logLevel {
|
|
prefix := time.Now().Format(time.RFC3339) + " " + prefices[level]
|
|
lines := strings.Split(msg, "\n")
|
|
for i := 0; i < len(lines); i++ {
|
|
fmt.Println(prefix + lines[i])
|
|
}
|
|
}
|
|
return msg
|
|
}
|
|
|
|
func SetLogLevel(level int) bool {
|
|
if level > LOG_LEVEL_ERROR && level <= LOG_LEVEL_DEBUG {
|
|
logLevel = level
|
|
return true
|
|
} else {
|
|
return false
|
|
}
|
|
}
|
|
|
|
func Debug(msg string) string {
|
|
return log(msg, LOG_LEVEL_DEBUG)
|
|
}
|
|
|
|
func Notice(msg string) string {
|
|
return log(msg, LOG_LEVEL_NOTICE)
|
|
}
|
|
|
|
func Warning(msg string) string {
|
|
return log(msg, LOG_LEVEL_WARNING)
|
|
}
|
|
|
|
func Record(msg string) string {
|
|
return log(msg, LOG_LEVEL_RECORD)
|
|
}
|
|
|
|
func Error(msg string) string {
|
|
numErrors++
|
|
return log(fmt.Sprintf("(%d) ", numErrors)+msg, LOG_LEVEL_ERROR)
|
|
}
|