From 7b51788206982a8bee67f69e838513b17f5cac11 Mon Sep 17 00:00:00 2001 From: Adrian Sutton Date: Wed, 29 Mar 2023 07:27:40 +1000 Subject: [PATCH 1/2] internal/debug: Add --log.format Removes the new log.logfmt and hides log.json, replacing both with log.format=(json|logfmt|terminal). The hidden log.json option is still respected if log.format is not specified for backwards compatibility. --- internal/debug/flags.go | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/internal/debug/flags.go b/internal/debug/flags.go index 0bae9883ec3..ec88f922c1d 100644 --- a/internal/debug/flags.go +++ b/internal/debug/flags.go @@ -52,11 +52,12 @@ var ( logjsonFlag = &cli.BoolFlag{ Name: "log.json", Usage: "Format logs with JSON", + Hidden: true, Category: flags.LoggingCategory, } - logfmtFlag = &cli.BoolFlag{ - Name: "log.logfmt", - Usage: "Format logs with logfmt", + logFormatFlag = &cli.StringFlag{ + Name: "log.format", + Usage: "Log format to use (json|logfmt|terminal)", Category: flags.LoggingCategory, } logFileFlag = &cli.StringFlag{ @@ -120,7 +121,7 @@ var Flags = []cli.Flag{ verbosityFlag, vmoduleFlag, logjsonFlag, - logfmtFlag, + logFormatFlag, logFileFlag, backtraceAtFlag, debugFlag, @@ -151,12 +152,24 @@ func Setup(ctx *cli.Context) error { useColor := logFile == "" && os.Getenv("TERM") != "dumb" && (isatty.IsTerminal(os.Stderr.Fd()) || isatty.IsCygwinTerminal(os.Stderr.Fd())) var logfmt log.Format - if ctx.Bool(logjsonFlag.Name) { + switch ctx.String(logFormatFlag.Name) { + case "json": logfmt = log.JSONFormat() - } else if ctx.Bool(logfmtFlag.Name) { + case "logfmt": logfmt = log.LogfmtFormat() - } else { + case "terminal": logfmt = log.TerminalFormat(useColor) + case "": + // Retain backwards compatibility with `--log.json` flag if `--log.format` not set + if ctx.Bool(logjsonFlag.Name) { + log.Warn("The flag '--log.json' is deprecated, please use '--log.format=json' instead") + logfmt = log.JSONFormat() + } else { + logfmt = log.TerminalFormat(useColor) + } + default: + // Unknown log format specified + return fmt.Errorf("unknown log format: %v", ctx.String(logFormatFlag.Name)) } if logFile != "" { From 2c8800390e3042e0cf6bf7c2c09c9d50d8a07b79 Mon Sep 17 00:00:00 2001 From: Martin Holst Swende Date: Thu, 30 Mar 2023 07:09:07 -0400 Subject: [PATCH 2/2] Update internal/debug/flags.go --- internal/debug/flags.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/debug/flags.go b/internal/debug/flags.go index ec88f922c1d..068817d532a 100644 --- a/internal/debug/flags.go +++ b/internal/debug/flags.go @@ -162,7 +162,7 @@ func Setup(ctx *cli.Context) error { case "": // Retain backwards compatibility with `--log.json` flag if `--log.format` not set if ctx.Bool(logjsonFlag.Name) { - log.Warn("The flag '--log.json' is deprecated, please use '--log.format=json' instead") + defer log.Warn("The flag '--log.json' is deprecated, please use '--log.format=json' instead") logfmt = log.JSONFormat() } else { logfmt = log.TerminalFormat(useColor)