Commit 58ca9e13 authored by Joshua Gutow's avatar Joshua Gutow

op-service/oplog: Add logfmt format & change defaults

parent 1d5a265e
...@@ -28,13 +28,13 @@ func CLIFlags(envPrefix string) []cli.Flag { ...@@ -28,13 +28,13 @@ func CLIFlags(envPrefix string) []cli.Flag {
}, },
cli.StringFlag{ cli.StringFlag{
Name: FormatFlagName, Name: FormatFlagName,
Usage: "Format the log output. Supported formats: 'text', 'json'", Usage: "Format the log output. Supported formats: 'text', 'terminal', 'logfmt', 'json', 'json-pretty',",
Value: "text", Value: "text",
EnvVar: opservice.PrefixEnvVar(envPrefix, "LOG_FORMAT"), EnvVar: opservice.PrefixEnvVar(envPrefix, "LOG_FORMAT"),
}, },
cli.BoolFlag{ cli.BoolFlag{
Name: ColorFlagName, Name: ColorFlagName,
Usage: "Color the log output", Usage: "Color the log output if in terminal mode",
EnvVar: opservice.PrefixEnvVar(envPrefix, "LOG_COLOR"), EnvVar: opservice.PrefixEnvVar(envPrefix, "LOG_COLOR"),
}, },
} }
...@@ -43,12 +43,12 @@ func CLIFlags(envPrefix string) []cli.Flag { ...@@ -43,12 +43,12 @@ func CLIFlags(envPrefix string) []cli.Flag {
type CLIConfig struct { type CLIConfig struct {
Level string // Log level: trace, debug, info, warn, error, crit. Capitals are accepted too. Level string // Log level: trace, debug, info, warn, error, crit. Capitals are accepted too.
Color bool // Color the log output. Defaults to true if terminal is detected. Color bool // Color the log output. Defaults to true if terminal is detected.
Format string // Format the log output. Supported formats: 'text', 'json' Format string // Format the log output. Supported formats: 'text', 'terminal', 'logfmt', 'json', 'json-pretty'
} }
func (cfg CLIConfig) Check() error { func (cfg CLIConfig) Check() error {
switch cfg.Format { switch cfg.Format {
case "json", "json-pretty", "terminal", "text": case "json", "json-pretty", "terminal", "text", "logfmt":
default: default:
return fmt.Errorf("unrecognized log format: %s", cfg.Format) return fmt.Errorf("unrecognized log format: %s", cfg.Format)
} }
...@@ -101,8 +101,16 @@ func Format(lf string, color bool) log.Format { ...@@ -101,8 +101,16 @@ func Format(lf string, color bool) log.Format {
return log.JSONFormat() return log.JSONFormat()
case "json-pretty": case "json-pretty":
return log.JSONFormatEx(true, true) return log.JSONFormatEx(true, true)
case "text", "terminal": case "text":
if term.IsTerminal(int(os.Stdout.Fd())) {
return log.TerminalFormat(color) return log.TerminalFormat(color)
} else {
return log.LogfmtFormat()
}
case "terminal":
return log.TerminalFormat(color)
case "logfmt":
return log.LogfmtFormat()
default: default:
panic("Failed to create `log.Format` from options") panic("Failed to create `log.Format` from options")
} }
......
...@@ -10,7 +10,7 @@ func SetupDefaults() { ...@@ -10,7 +10,7 @@ func SetupDefaults() {
log.Root().SetHandler( log.Root().SetHandler(
log.LvlFilterHandler( log.LvlFilterHandler(
log.LvlInfo, log.LvlInfo,
log.StreamHandler(os.Stdout, log.TerminalFormat(true)), log.StreamHandler(os.Stdout, log.LogfmtFormat()),
), ),
) )
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment