Merge pull request #12968 from serathius/logger-simplify
server: Simplify passing logger setup by passing only logger
This commit is contained in:
@ -30,7 +30,6 @@ import (
|
|||||||
|
|
||||||
bolt "go.etcd.io/bbolt"
|
bolt "go.etcd.io/bbolt"
|
||||||
"go.uber.org/zap"
|
"go.uber.org/zap"
|
||||||
"go.uber.org/zap/zapcore"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// ServerConfig holds the configuration of etcd as taken from the command line or discovery.
|
// ServerConfig holds the configuration of etcd as taken from the command line or discovery.
|
||||||
@ -144,17 +143,8 @@ type ServerConfig struct {
|
|||||||
SocketOpts transport.SocketOpts
|
SocketOpts transport.SocketOpts
|
||||||
|
|
||||||
// Logger logs server-side operations.
|
// Logger logs server-side operations.
|
||||||
// If not nil, it disables "capnslog" and uses the given logger.
|
|
||||||
Logger *zap.Logger
|
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
|
|
||||||
|
|
||||||
ForceNewCluster bool
|
ForceNewCluster bool
|
||||||
|
|
||||||
// EnableLeaseCheckpoint enables primary lessor to persist lease remainingTTL to prevent indefinite auto-renewal of long lived leases.
|
// EnableLeaseCheckpoint enables primary lessor to persist lease remainingTTL to prevent indefinite auto-renewal of long lived leases.
|
||||||
|
@ -40,7 +40,6 @@ import (
|
|||||||
bolt "go.etcd.io/bbolt"
|
bolt "go.etcd.io/bbolt"
|
||||||
"go.uber.org/multierr"
|
"go.uber.org/multierr"
|
||||||
"go.uber.org/zap"
|
"go.uber.org/zap"
|
||||||
"go.uber.org/zap/zapcore"
|
|
||||||
"golang.org/x/crypto/bcrypt"
|
"golang.org/x/crypto/bcrypt"
|
||||||
"google.golang.org/grpc"
|
"google.golang.org/grpc"
|
||||||
"sigs.k8s.io/yaml"
|
"sigs.k8s.io/yaml"
|
||||||
@ -372,15 +371,6 @@ type Config struct {
|
|||||||
// Do not set logger directly.
|
// Do not set logger directly.
|
||||||
loggerMu *sync.RWMutex
|
loggerMu *sync.RWMutex
|
||||||
logger *zap.Logger
|
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
|
|
||||||
|
|
||||||
// EnableGRPCGateway enables grpc gateway.
|
// EnableGRPCGateway enables grpc gateway.
|
||||||
// The gateway translates a RESTful HTTP API into gRPC.
|
// The gateway translates a RESTful HTTP API into gRPC.
|
||||||
EnableGRPCGateway bool `json:"enable-grpc-gateway"`
|
EnableGRPCGateway bool `json:"enable-grpc-gateway"`
|
||||||
|
@ -104,16 +104,13 @@ func (cfg *Config) setupLogging() error {
|
|||||||
copied.Level = zap.NewAtomicLevelAt(logutil.ConvertToZapLevel(cfg.LogLevel))
|
copied.Level = zap.NewAtomicLevelAt(logutil.ConvertToZapLevel(cfg.LogLevel))
|
||||||
if cfg.ZapLoggerBuilder == nil {
|
if cfg.ZapLoggerBuilder == nil {
|
||||||
cfg.ZapLoggerBuilder = func(c *Config) error {
|
cfg.ZapLoggerBuilder = func(c *Config) error {
|
||||||
|
c.loggerMu.Lock()
|
||||||
|
defer c.loggerMu.Unlock()
|
||||||
var err error
|
var err error
|
||||||
c.logger, err = copied.Build()
|
c.logger, err = copied.Build()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
c.loggerMu.Lock()
|
|
||||||
defer c.loggerMu.Unlock()
|
|
||||||
c.loggerConfig = &copied
|
|
||||||
c.loggerCore = nil
|
|
||||||
c.loggerWriteSyncer = nil
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -143,13 +140,9 @@ func (cfg *Config) setupLogging() error {
|
|||||||
)
|
)
|
||||||
if cfg.ZapLoggerBuilder == nil {
|
if cfg.ZapLoggerBuilder == nil {
|
||||||
cfg.ZapLoggerBuilder = func(c *Config) error {
|
cfg.ZapLoggerBuilder = func(c *Config) error {
|
||||||
c.logger = zap.New(cr, zap.AddCaller(), zap.ErrorOutput(syncer))
|
|
||||||
c.loggerMu.Lock()
|
c.loggerMu.Lock()
|
||||||
defer c.loggerMu.Unlock()
|
defer c.loggerMu.Unlock()
|
||||||
c.loggerConfig = nil
|
c.logger = zap.New(cr, zap.AddCaller(), zap.ErrorOutput(syncer))
|
||||||
c.loggerCore = cr
|
|
||||||
c.loggerWriteSyncer = syncer
|
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -203,9 +196,6 @@ func NewZapCoreLoggerBuilder(lg *zap.Logger) func(*Config) error {
|
|||||||
cfg.loggerMu.Lock()
|
cfg.loggerMu.Lock()
|
||||||
defer cfg.loggerMu.Unlock()
|
defer cfg.loggerMu.Unlock()
|
||||||
cfg.logger = lg
|
cfg.logger = lg
|
||||||
cfg.loggerConfig = nil
|
|
||||||
cfg.loggerCore = nil
|
|
||||||
cfg.loggerWriteSyncer = nil
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -211,9 +211,6 @@ func StartEtcd(inCfg *Config) (e *Etcd, err error) {
|
|||||||
CorruptCheckTime: cfg.ExperimentalCorruptCheckTime,
|
CorruptCheckTime: cfg.ExperimentalCorruptCheckTime,
|
||||||
PreVote: cfg.PreVote,
|
PreVote: cfg.PreVote,
|
||||||
Logger: cfg.logger,
|
Logger: cfg.logger,
|
||||||
LoggerConfig: cfg.loggerConfig,
|
|
||||||
LoggerCore: cfg.loggerCore,
|
|
||||||
LoggerWriteSyncer: cfg.loggerWriteSyncer,
|
|
||||||
ForceNewCluster: cfg.ForceNewCluster,
|
ForceNewCluster: cfg.ForceNewCluster,
|
||||||
EnableGRPCGateway: cfg.EnableGRPCGateway,
|
EnableGRPCGateway: cfg.EnableGRPCGateway,
|
||||||
ExperimentalEnableDistributedTracing: cfg.ExperimentalEnableDistributedTracing,
|
ExperimentalEnableDistributedTracing: cfg.ExperimentalEnableDistributedTracing,
|
||||||
|
@ -460,9 +460,8 @@ func startNode(cfg config.ServerConfig, cl *membership.RaftCluster, ids []types.
|
|||||||
MaxInflightMsgs: maxInflightMsgs,
|
MaxInflightMsgs: maxInflightMsgs,
|
||||||
CheckQuorum: true,
|
CheckQuorum: true,
|
||||||
PreVote: cfg.PreVote,
|
PreVote: cfg.PreVote,
|
||||||
|
Logger: NewRaftLoggerZap(cfg.Logger.Named("raft")),
|
||||||
}
|
}
|
||||||
c.Logger, _ = getRaftLogger(cfg)
|
|
||||||
|
|
||||||
if len(peers) == 0 {
|
if len(peers) == 0 {
|
||||||
n = raft.RestartNode(c)
|
n = raft.RestartNode(c)
|
||||||
} else {
|
} else {
|
||||||
@ -504,11 +503,7 @@ func restartNode(cfg config.ServerConfig, snapshot *raftpb.Snapshot) (types.ID,
|
|||||||
MaxInflightMsgs: maxInflightMsgs,
|
MaxInflightMsgs: maxInflightMsgs,
|
||||||
CheckQuorum: true,
|
CheckQuorum: true,
|
||||||
PreVote: cfg.PreVote,
|
PreVote: cfg.PreVote,
|
||||||
}
|
Logger: NewRaftLoggerZap(cfg.Logger.Named("raft")),
|
||||||
var err error
|
|
||||||
c.Logger, err = getRaftLogger(cfg)
|
|
||||||
if err != nil {
|
|
||||||
log.Fatalf("cannot create raft logger %v", err)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
n := raft.RestartNode(c)
|
n := raft.RestartNode(c)
|
||||||
@ -582,11 +577,7 @@ func restartAsStandaloneNode(cfg config.ServerConfig, snapshot *raftpb.Snapshot)
|
|||||||
MaxInflightMsgs: maxInflightMsgs,
|
MaxInflightMsgs: maxInflightMsgs,
|
||||||
CheckQuorum: true,
|
CheckQuorum: true,
|
||||||
PreVote: cfg.PreVote,
|
PreVote: cfg.PreVote,
|
||||||
}
|
Logger: NewRaftLoggerZap(cfg.Logger.Named("raft")),
|
||||||
|
|
||||||
c.Logger, err = getRaftLogger(cfg)
|
|
||||||
if err != nil {
|
|
||||||
log.Fatalf("cannot create raft logger %v", err)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
n := raft.RestartNode(c)
|
n := raft.RestartNode(c)
|
||||||
@ -594,20 +585,6 @@ func restartAsStandaloneNode(cfg config.ServerConfig, snapshot *raftpb.Snapshot)
|
|||||||
return id, cl, n, s, w
|
return id, cl, n, s, w
|
||||||
}
|
}
|
||||||
|
|
||||||
func getRaftLogger(cfg config.ServerConfig) (raft.Logger, error) {
|
|
||||||
if cfg.Logger != nil {
|
|
||||||
// called after capnslog setting in "init" function
|
|
||||||
if cfg.LoggerConfig != nil {
|
|
||||||
return NewRaftLogger(cfg.LoggerConfig)
|
|
||||||
} else if cfg.LoggerCore != nil && cfg.LoggerWriteSyncer != nil {
|
|
||||||
return NewRaftLoggerFromZapCore(cfg.LoggerCore, cfg.LoggerWriteSyncer), nil
|
|
||||||
} else {
|
|
||||||
return NewRaftLoggerZap(cfg.Logger.Named("raft")), nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return nil, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// getIDs returns an ordered set of IDs included in the given snapshot and
|
// getIDs returns an ordered set of IDs included in the given snapshot and
|
||||||
// the entries. The given snapshot/entries can contain three kinds of
|
// the entries. The given snapshot/entries can contain three kinds of
|
||||||
// ID-related entry:
|
// ID-related entry:
|
||||||
|
Reference in New Issue
Block a user