57 lines
970 B
Go
57 lines
970 B
Go
package config
|
|
|
|
import (
|
|
"strings"
|
|
|
|
"git.loyso.art/frx/eway/internal/entity"
|
|
)
|
|
|
|
type LogLevel uint8
|
|
|
|
const (
|
|
LogLevelDebug LogLevel = iota
|
|
LogLevelInfo
|
|
LogLevelWarn
|
|
)
|
|
|
|
func (l *LogLevel) UnmarshalText(data []byte) (err error) {
|
|
switch strings.ToLower(string(data)) {
|
|
case "debug":
|
|
*l = LogLevelDebug
|
|
case "info":
|
|
*l = LogLevelInfo
|
|
case "warn":
|
|
*l = LogLevelWarn
|
|
default:
|
|
return entity.SimpleError("unsupported level " + string(data))
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
type LogFormat uint8
|
|
|
|
const (
|
|
LogFormatText LogFormat = iota
|
|
LogFormatJSON
|
|
)
|
|
|
|
func (l *LogFormat) UnmarshalText(data []byte) (err error) {
|
|
switch strings.ToLower(string(data)) {
|
|
case "text":
|
|
*l = LogFormatText
|
|
case "info":
|
|
*l = LogFormatJSON
|
|
default:
|
|
return entity.SimpleError("unsupported format " + string(data))
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
type Log struct {
|
|
Level string `json:"level" toml:"level"`
|
|
Format string `json:"format" toml:"format"`
|
|
Output string `json:"output" toml:"output"`
|
|
}
|