diff --git a/embed/config.go b/embed/config.go index 565e3962c..9de6127a2 100644 --- a/embed/config.go +++ b/embed/config.go @@ -261,13 +261,6 @@ type Config struct { ListenMetricsUrls []url.URL ListenMetricsUrlsJSON string `json:"listen-metrics-urls"` - // logger logs server-side operations. The default is nil, - // and "setupLogging" must be called before starting server. - // Do not set logger directly. - loggerMu *sync.RWMutex - logger *zap.Logger - loggerConfig *zap.Config - // Logger is logger options: "zap", "capnslog". // WARN: "capnslog" is being deprecated in v3.5. Logger string `json:"logger"` @@ -282,6 +275,22 @@ type Config struct { // Debug is true, to enable debug level logging. Debug bool `json:"debug"` + // logger logs server-side operations. The default is nil, + // and "setupLogging" must be called before starting server. + // Do not set logger directly. + loggerMu *sync.RWMutex + logger *zap.Logger + + // loggerConfig is server logger configuration for Raft logger. + // Must be either: "loggerConfig != nil" or "loggerCore != nil && loggerWriteSyncer != nil". + loggerConfig *zap.Config + // loggerCore is "zapcore.Core" for raft logger. + // Must be either: "loggerConfig != nil" or "loggerCore != nil && loggerWriteSyncer != nil". + loggerCore zapcore.Core + loggerWriteSyncer zapcore.WriteSyncer + + // TO BE DEPRECATED + // LogPkgLevels is being deprecated in v3.5. // Only valid if "logger" option is "capnslog". // WARN: DO NOT USE THIS! @@ -519,7 +528,10 @@ func (cfg *Config) setupLogging() error { if err != nil { return err } + cfg.loggerConfig = &lcfg + cfg.loggerCore = nil + cfg.loggerWriteSyncer = nil grpcLogOnce.Do(func() { // debug true, enable info, warning, error @@ -548,6 +560,10 @@ func (cfg *Config) setupLogging() error { ) cfg.logger = zap.New(cr, zap.AddCaller(), zap.ErrorOutput(syncer)) + cfg.loggerConfig = nil + cfg.loggerCore = cr + cfg.loggerWriteSyncer = syncer + grpcLogOnce.Do(func() { grpclog.SetLoggerV2(logutil.NewGRPCLoggerV2FromZapCore(cr, syncer)) }) diff --git a/embed/etcd.go b/embed/etcd.go index c0958e49a..a500a86e9 100644 --- a/embed/etcd.go +++ b/embed/etcd.go @@ -190,6 +190,8 @@ func StartEtcd(inCfg *Config) (e *Etcd, err error) { PreVote: cfg.PreVote, Logger: cfg.logger, LoggerConfig: cfg.loggerConfig, + LoggerCore: cfg.loggerCore, + LoggerWriteSyncer: cfg.loggerWriteSyncer, Debug: cfg.Debug, ForceNewCluster: cfg.ForceNewCluster, }