From 614c73318fb759d2fea47cf3b56ce3ce4af75d4c Mon Sep 17 00:00:00 2001 From: Michal Pristas Date: Mon, 15 Mar 2021 17:26:50 +0100 Subject: [PATCH] Cherry-pick #24466 to 7.12: Logging to file disabled on enroll (#24474) Cherry-pick #24466 to 7.12: Logging to file disabled on enroll (#24474) --- x-pack/elastic-agent/CHANGELOG.asciidoc | 1 + x-pack/elastic-agent/pkg/agent/cmd/enroll.go | 5 +++++ x-pack/elastic-agent/pkg/core/logger/logger.go | 16 ++++++++++++---- 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/x-pack/elastic-agent/CHANGELOG.asciidoc b/x-pack/elastic-agent/CHANGELOG.asciidoc index 1192e3ed91c2..c4f7fa88dad2 100644 --- a/x-pack/elastic-agent/CHANGELOG.asciidoc +++ b/x-pack/elastic-agent/CHANGELOG.asciidoc @@ -40,6 +40,7 @@ - Fix failing installation on windows 7 {pull}[24387]24387 - Fix capabilities resolution in inspect command {pull}[24346]24346 - Fix windows installer during enroll {pull}[24343]24343 +- Logging to file disabled on enroll {issue}[24173]24173 ==== New features diff --git a/x-pack/elastic-agent/pkg/agent/cmd/enroll.go b/x-pack/elastic-agent/pkg/agent/cmd/enroll.go index cd4b12ef4226..78fc41f819af 100644 --- a/x-pack/elastic-agent/pkg/agent/cmd/enroll.go +++ b/x-pack/elastic-agent/pkg/agent/cmd/enroll.go @@ -157,6 +157,11 @@ func enroll(streams *cli.IOStreams, cmd *cobra.Command, flags *globalFlags, args } } + // enroll is invoked either manually or from install with redirected IO + // no need to log to file + cfg.Settings.LoggingConfig.ToFiles = false + cfg.Settings.LoggingConfig.ToStderr = true + logger, err := logger.NewFromConfig("", cfg.Settings.LoggingConfig) if err != nil { return err diff --git a/x-pack/elastic-agent/pkg/core/logger/logger.go b/x-pack/elastic-agent/pkg/core/logger/logger.go index 3e70cd88e57b..6169022fea6c 100644 --- a/x-pack/elastic-agent/pkg/core/logger/logger.go +++ b/x-pack/elastic-agent/pkg/core/logger/logger.go @@ -54,11 +54,18 @@ func new(name string, cfg *Config) (*Logger, error) { if err != nil { return nil, err } - internal, err := makeInternalFileOutput(cfg) - if err != nil { - return nil, err + + var outputs []zapcore.Core + if cfg.ToFiles { + internal, err := makeInternalFileOutput(cfg) + if err != nil { + return nil, err + } + + outputs = append(outputs, internal) } - if err := configure.LoggingWithOutputs("", commonCfg, internal); err != nil { + + if err := configure.LoggingWithOutputs("", commonCfg, outputs...); err != nil { return nil, fmt.Errorf("error initializing logging: %v", err) } return logp.NewLogger(name), nil @@ -87,6 +94,7 @@ func DefaultLoggingConfig() *Config { cfg := logp.DefaultConfig(logp.DefaultEnvironment) cfg.Beat = agentName cfg.Level = logp.InfoLevel + cfg.ToFiles = true cfg.Files.Path = paths.Logs() cfg.Files.Name = fmt.Sprintf("%s.log", agentName)