cmd/ctrld: rework "verbose" flag

This commit changes "verbose" flag from boolean to count flag, so we can
specify the flag multiple times to indicate different logging output:

 - No "-v": no query logging except startup/listeners
 - "-v"   : query logging enabled
 - "-vv"  : debug level logging enabled
This commit is contained in:
Cuong Manh Le
2022-12-19 20:48:12 +07:00
committed by Cuong Manh Le
parent a7ae6c9853
commit 837d3195ca
3 changed files with 25 additions and 14 deletions
+16 -10
View File
@@ -15,7 +15,7 @@ var (
configPath string
daemon bool
cfg ctrld.Config
verbose bool
verbose int
bootstrapDNS = "76.76.2.0"
@@ -42,21 +42,27 @@ func initLogging() {
writers = append(writers, logFile)
}
zerolog.TimeFieldFormat = zerolog.TimeFormatUnixMs
if verbose || isLog {
consoleWriter := zerolog.NewConsoleWriter(func(w *zerolog.ConsoleWriter) {
w.TimeFormat = time.StampMilli
})
writers = append(writers, consoleWriter)
multi := zerolog.MultiLevelWriter(writers...)
mainLog = mainLog.Output(multi).With().Timestamp().Str("prefix", "main").Logger()
consoleWriter := zerolog.NewConsoleWriter(func(w *zerolog.ConsoleWriter) {
w.TimeFormat = time.StampMilli
})
writers = append(writers, consoleWriter)
multi := zerolog.MultiLevelWriter(writers...)
mainLog = mainLog.Output(multi).With().Timestamp().Str("prefix", "main").Logger()
if verbose > 0 || isLog {
proxyLog = proxyLog.Output(multi).With().Timestamp().Logger()
// TODO: find a better way.
ctrld.ProxyLog = proxyLog
}
if cfg.Service.LogLevel == "" {
zerolog.SetGlobalLevel(zerolog.InfoLevel)
logLevel := cfg.Service.LogLevel
if verbose > 1 {
logLevel = "debug"
}
if logLevel == "" {
return
}
level, err := zerolog.ParseLevel(cfg.Service.LogLevel)
level, err := zerolog.ParseLevel(logLevel)
if err != nil {
mainLog.Warn().Err(err).Msg("could not set log level")
return