1
0
mirror of https://github.com/jhillyerd/inbucket.git synced 2025-12-17 09:37:02 +00:00

config: Use log level name DEBUG instead of TRACE

Add log level parsing into openLog() for #90
This commit is contained in:
James Hillyerd
2018-03-31 15:30:36 -07:00
parent deceb29377
commit 5a28e9f9e7
3 changed files with 24 additions and 12 deletions

View File

@@ -11,6 +11,7 @@ import (
"os"
"os/signal"
"runtime"
"strings"
"syscall"
"time"
@@ -73,13 +74,6 @@ func main() {
config.Usage()
return
}
// Logger setup.
closeLog, err := openLog(*logfile, *logjson)
if err != nil {
fmt.Fprintf(os.Stderr, "Log error: %v\n", err)
os.Exit(1)
}
startupLog := log.With().Str("phase", "startup").Logger()
// Process configuration.
config.Version = version
config.BuildDate = date
@@ -92,6 +86,13 @@ func main() {
conf.POP3.Debug = true
conf.SMTP.Debug = true
}
// Logger setup.
closeLog, err := openLog(conf.LogLevel, *logfile, *logjson)
if err != nil {
fmt.Fprintf(os.Stderr, "Log error: %v\n", err)
os.Exit(1)
}
startupLog := log.With().Str("phase", "startup").Logger()
// Setup signal handler.
sigChan := make(chan os.Signal, 1)
signal.Notify(sigChan, syscall.SIGTERM, syscall.SIGINT)
@@ -166,9 +167,20 @@ signalLoop:
}
// openLog configures zerolog output, returns func to close logfile.
func openLog(logfile string, json bool) (close func(), err error) {
func openLog(level string, logfile string, json bool) (close func(), err error) {
switch strings.ToUpper(level) {
case "DEBUG":
zerolog.SetGlobalLevel(zerolog.DebugLevel)
case "INFO":
zerolog.SetGlobalLevel(zerolog.InfoLevel)
case "WARN":
zerolog.SetGlobalLevel(zerolog.WarnLevel)
case "ERROR":
zerolog.SetGlobalLevel(zerolog.ErrorLevel)
default:
return nil, fmt.Errorf("Log level %q not one of: DEBUG, INFO, WARN, ERROR", level)
}
close = func() {}
zerolog.SetGlobalLevel(zerolog.DebugLevel)
var w io.Writer
color := true
switch logfile {