Improve logging initialization

This commit is contained in:
Daniel 2019-03-08 23:18:25 +01:00
parent 2fd7e3fbc7
commit ff4248822b

View file

@ -4,6 +4,7 @@ package log
import ( import (
"fmt" "fmt"
"os"
"strings" "strings"
"sync" "sync"
"sync/atomic" "sync/atomic"
@ -107,7 +108,7 @@ func ParseLevel(level string) severity {
return 0 return 0
} }
func Start() error { func Start() (err error) {
if !initializing.SetToIf(false, true) { if !initializing.SetToIf(false, true) {
return nil return nil
@ -120,7 +121,8 @@ func Start() error {
if initialLogLevel > 0 { if initialLogLevel > 0 {
atomic.StoreUint32(logLevel, uint32(initialLogLevel)) atomic.StoreUint32(logLevel, uint32(initialLogLevel))
} else { } else {
return fmt.Errorf("invalid log level \"%s\", falling back to level info", logLevelFlag) err = fmt.Errorf("log warning: invalid log level \"%s\", falling back to level info", logLevelFlag)
fmt.Fprintf(os.Stderr, "%s\n", err.Error())
} }
// get and set file loglevels // get and set file loglevels
@ -130,11 +132,15 @@ func Start() error {
for _, pair := range strings.Split(fileLogLevels, ",") { for _, pair := range strings.Split(fileLogLevels, ",") {
splitted := strings.Split(pair, "=") splitted := strings.Split(pair, "=")
if len(splitted) != 2 { if len(splitted) != 2 {
return fmt.Errorf("invalid file log level \"%s\", ignoring", pair) err = fmt.Errorf("log warning: invalid file log level \"%s\", ignoring", pair)
fmt.Fprintf(os.Stderr, "%s\n", err.Error())
break
} }
fileLevel := ParseLevel(splitted[1]) fileLevel := ParseLevel(splitted[1])
if fileLevel == 0 { if fileLevel == 0 {
return fmt.Errorf("invalid file log level \"%s\", ignoring", pair) err = fmt.Errorf("log warning: invalid file log level \"%s\", ignoring", pair)
fmt.Fprintf(os.Stderr, "%s\n", err.Error())
break
} }
newFileLevels[splitted[0]] = fileLevel newFileLevels[splitted[0]] = fileLevel
} }
@ -146,7 +152,7 @@ func Start() error {
started.Set() started.Set()
close(startedSignal) close(startedSignal)
return nil return err
} }
// Shutdown writes remaining log lines and then stops the logger. // Shutdown writes remaining log lines and then stops the logger.