Init configuration from file #3
27
flags.go
27
flags.go
@ -40,22 +40,6 @@ const (
|
||||
LstdFlags = Ldate | Ltime | Lmedfile | Lshortfuncname | Llevelinitial
|
||||
)
|
||||
|
||||
var flagFromString = map[string]Flags{
|
||||
"none": 0,
|
||||
"date": Ldate,
|
||||
"time": Ltime,
|
||||
"microseconds": Lmicroseconds,
|
||||
"longfile": Llongfile,
|
||||
"shortfile": Lshortfile,
|
||||
"funcname": Lfuncname,
|
||||
"shortfuncname": Lshortfuncname,
|
||||
"utc": LUTC,
|
||||
"levelinitial": Llevelinitial,
|
||||
"level": Llevel,
|
||||
"medfile": Lmedfile,
|
||||
"stdflags": LstdFlags,
|
||||
}
|
||||
|
||||
var flagOrder = []string{
|
||||
"date",
|
||||
"time",
|
||||
@ -97,8 +81,8 @@ func (f Flags) MarshalJSON() ([]byte, error) {
|
||||
stringFlags = append(stringFlags, "medfile")
|
||||
w = w ^ Lmedfile
|
||||
}
|
||||
for _, k := range flagOrder {
|
||||
v := flagFromString[k]
|
||||
for i, k := range flagOrder {
|
||||
v := Flags(1 << uint64(i))
|
||||
if w&v == v && v != 0 {
|
||||
stringFlags = append(stringFlags, k)
|
||||
}
|
||||
@ -114,9 +98,10 @@ func (f Flags) MarshalJSON() ([]byte, error) {
|
||||
func FlagsFromString(from string) Flags {
|
||||
flags := Flags(0)
|
||||
for _, flag := range strings.Split(strings.ToLower(from), ",") {
|
||||
f, ok := flagFromString[strings.TrimSpace(flag)]
|
||||
if ok {
|
||||
flags = flags | f
|
||||
for f, k := range flagOrder {
|
||||
if k == strings.TrimSpace(flag) {
|
||||
flags = flags | Flags(1<<uint64(f))
|
||||
}
|
||||
}
|
||||
}
|
||||
return flags
|
||||
|
Reference in New Issue
Block a user