diff --git a/.changelog/11291.txt b/.changelog/11291.txt new file mode 100644 index 000000000..59cef5985 --- /dev/null +++ b/.changelog/11291.txt @@ -0,0 +1,3 @@ +```release-note:bug +agent: Fixed an issue that caused some non-JSON log output when `log_json` was enabled +``` diff --git a/command/agent/command.go b/command/agent/command.go index 1e753cf27..315f9bdd1 100644 --- a/command/agent/command.go +++ b/command/agent/command.go @@ -470,7 +470,6 @@ func SetupLoggers(ui cli.Ui, config *Config) (*logutils.LevelFilter, *gatedwrite } logOutput := io.MultiWriter(writers...) - log.SetOutput(logOutput) return logFilter, logGate, logOutput } @@ -649,6 +648,12 @@ func (c *Command) Run(args []string) int { JSONFormat: config.LogJson, }) + // Wrap log messages emitted with the 'log' package. + // These usually come from external dependencies. + log.SetOutput(logger.StandardWriter(&hclog.StandardLoggerOptions{InferLevels: true})) + log.SetPrefix("") + log.SetFlags(0) + // Swap out UI implementation if json logging is enabled if config.LogJson { c.Ui = &logging.HcLogUI{Log: logger}