2020-10-09 11:50:45 +11:00
|
|
|
package logger
|
|
|
|
|
|
2021-08-18 22:13:45 +10:00
|
|
|
import (
|
|
|
|
|
"fmt"
|
|
|
|
|
"strings"
|
|
|
|
|
)
|
|
|
|
|
|
2020-10-09 15:39:11 +11:00
|
|
|
// LogLevel is an unsigned 8bit int
|
2020-10-09 14:36:42 +11:00
|
|
|
type LogLevel uint8
|
|
|
|
|
|
|
|
|
|
const (
|
2020-10-09 15:39:11 +11:00
|
|
|
// TRACE level
|
2020-10-13 07:34:36 +11:00
|
|
|
TRACE LogLevel = 1
|
2020-10-09 15:39:11 +11:00
|
|
|
|
|
|
|
|
// DEBUG level logging
|
2020-10-13 07:34:36 +11:00
|
|
|
DEBUG LogLevel = 2
|
2020-10-09 15:39:11 +11:00
|
|
|
|
|
|
|
|
// INFO level logging
|
2020-10-13 07:34:36 +11:00
|
|
|
INFO LogLevel = 3
|
2020-10-09 15:39:11 +11:00
|
|
|
|
|
|
|
|
// WARNING level logging
|
2020-10-13 07:34:36 +11:00
|
|
|
WARNING LogLevel = 4
|
2020-10-09 15:39:11 +11:00
|
|
|
|
|
|
|
|
// ERROR level logging
|
2020-10-13 07:34:36 +11:00
|
|
|
ERROR LogLevel = 5
|
2020-10-09 14:36:42 +11:00
|
|
|
)
|
|
|
|
|
|
2021-08-18 22:13:45 +10:00
|
|
|
var logLevelMap = map[string]LogLevel{
|
|
|
|
|
"trace": TRACE,
|
|
|
|
|
"debug": DEBUG,
|
|
|
|
|
"info": INFO,
|
|
|
|
|
"warning": WARNING,
|
|
|
|
|
"error": ERROR,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func StringToLogLevel(input string) (LogLevel, error) {
|
|
|
|
|
result, ok := logLevelMap[strings.ToLower(input)]
|
|
|
|
|
if !ok {
|
|
|
|
|
return ERROR, fmt.Errorf("invalid log level: %s", input)
|
|
|
|
|
}
|
|
|
|
|
return result, nil
|
|
|
|
|
}
|
|
|
|
|
|
2020-10-09 15:39:11 +11:00
|
|
|
// Logger specifies the methods required to attach
|
|
|
|
|
// a logger to a Wails application
|
2020-10-09 11:50:45 +11:00
|
|
|
type Logger interface {
|
2020-12-05 14:44:28 +11:00
|
|
|
Print(message string)
|
|
|
|
|
Trace(message string)
|
|
|
|
|
Debug(message string)
|
|
|
|
|
Info(message string)
|
|
|
|
|
Warning(message string)
|
|
|
|
|
Error(message string)
|
|
|
|
|
Fatal(message string)
|
2020-10-09 15:39:11 +11:00
|
|
|
}
|