Browse Source

embed: add "loggerCore" field for Raft logger

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
Gyuho Lee 7 years ago
parent
commit
d33a74d380
2 changed files with 25 additions and 7 deletions
  1. 23 7
      embed/config.go
  2. 2 0
      embed/etcd.go

+ 23 - 7
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))
 			})

+ 2 - 0
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,
 	}