adds a flag for more readable console logs (#1642)
## Description I was getting frustrated by the readability of logs in the console, and wanted reduce some of my eye strain during development. Adds a hidden "readable-logs" flag for ease of reading logs during development. ## Type of change - [x] 🐹 Trivial/Minor Logs without flag: <img width="586" alt="image" src="https://user-images.githubusercontent.com/104464746/204873851-acd368d1-2c9c-43ef-bd4b-535896e56ef0.png"> Logs with flag: <img width="406" alt="image" src="https://user-images.githubusercontent.com/104464746/204873940-8ab3c6fd-24f8-458e-8ea9-8bdd1c27f872.png">
This commit is contained in:
parent
34ba06cf61
commit
c04b3ac6cd
@ -16,6 +16,8 @@ var (
|
||||
// logging level flag
|
||||
// TODO: infer default based on environment.
|
||||
llFlag = "info"
|
||||
|
||||
readableOutput bool
|
||||
)
|
||||
|
||||
type logLevel int
|
||||
@ -28,7 +30,10 @@ const (
|
||||
Disabled
|
||||
)
|
||||
|
||||
const logLevelFN = "log-level"
|
||||
const (
|
||||
logLevelFN = "log-level"
|
||||
readableLogsFN = "readable-logs"
|
||||
)
|
||||
|
||||
// adds the persistent flag --log-level to the provided command.
|
||||
// defaults to "info".
|
||||
@ -37,6 +42,12 @@ const logLevelFN = "log-level"
|
||||
func AddLogLevelFlag(parent *cobra.Command) {
|
||||
fs := parent.PersistentFlags()
|
||||
fs.StringVar(&llFlag, logLevelFN, "info", "set the log level to debug|info|warn|error")
|
||||
|
||||
fs.Bool(
|
||||
readableLogsFN, false,
|
||||
"minimizes log output for console readability: removes the file and date, colors the level")
|
||||
//nolint:errcheck
|
||||
fs.MarkHidden(readableLogsFN)
|
||||
}
|
||||
|
||||
// Due to races between the lazy evaluation of flags in cobra and the need to init logging
|
||||
@ -46,6 +57,7 @@ func PreloadLogLevel() string {
|
||||
fs := pflag.NewFlagSet("seed-logger", pflag.ContinueOnError)
|
||||
fs.ParseErrorsWhitelist.UnknownFlags = true
|
||||
fs.String(logLevelFN, "info", "set the log level to debug|info|warn|error")
|
||||
fs.BoolVar(&readableOutput, readableLogsFN, false, "minimizes log output: removes the file and date, colors the level")
|
||||
// prevents overriding the corso/cobra help processor
|
||||
fs.BoolP("help", "h", false, "")
|
||||
|
||||
@ -111,7 +123,15 @@ func genLogger(level logLevel) (*zapcore.Core, *zap.SugaredLogger) {
|
||||
cfg.Level = zap.NewAtomicLevelAt(zapcore.FatalLevel)
|
||||
}
|
||||
|
||||
lgr, err = cfg.Build()
|
||||
opts := []zap.Option{}
|
||||
|
||||
if readableOutput {
|
||||
opts = append(opts, zap.WithCaller(false), zap.AddStacktrace(zapcore.DPanicLevel))
|
||||
cfg.EncoderConfig.EncodeTime = zapcore.TimeEncoderOfLayout("15:04:05.00")
|
||||
cfg.EncoderConfig.EncodeLevel = zapcore.CapitalColorLevelEncoder
|
||||
}
|
||||
|
||||
lgr, err = cfg.Build(opts...)
|
||||
} else {
|
||||
lgr, err = zap.NewProduction()
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user