Skip to content

Commit

Permalink
etcdserver: add "LoggerCore" field for Raft logger
Browse files Browse the repository at this point in the history
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
  • Loading branch information
gyuho committed Apr 24, 2018
1 parent 36b882f commit 1b0badc
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 10 deletions.
11 changes: 10 additions & 1 deletion etcdserver/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ import (
"github.com/coreos/etcd/pkg/types"

"go.uber.org/zap"
"go.uber.org/zap/zapcore"
)

// ServerConfig holds the configuration of etcd as taken from the command line or discovery.
Expand Down Expand Up @@ -115,8 +116,16 @@ type ServerConfig struct {
// Logger logs server-side operations.
// If not nil, it disables "capnslog" and uses the given logger.
Logger *zap.Logger

// LoggerConfig is server logger configuration for Raft logger.
LoggerConfig zap.Config
// Must be either one of "LoggerConfig" or "LoggerCore" non-nil.
// Both cannot be non-nil at the same time (to handle journald logging).
LoggerConfig *zap.Config
// LoggerCore is "zapcore.Core" for raft logger.
// Must be either one of "LoggerConfig" or "LoggerCore" non-nil.
// Both cannot be non-nil at the same time (to handle journald logging).
LoggerCore zapcore.Core
LoggerWriteSyncer zapcore.WriteSyncer

Debug bool

Expand Down
30 changes: 21 additions & 9 deletions etcdserver/raft.go
Original file line number Diff line number Diff line change
Expand Up @@ -468,9 +468,13 @@ func startNode(cfg ServerConfig, cl *membership.RaftCluster, ids []types.ID) (id
}
if cfg.Logger != nil {
// called after capnslog setting in "init" function
c.Logger, err = logutil.NewRaftLogger(cfg.LoggerConfig)
if err != nil {
log.Fatalf("cannot create raft logger %v", err)
if cfg.LoggerConfig != nil {
c.Logger, err = logutil.NewRaftLogger(cfg.LoggerConfig)
if err != nil {
log.Fatalf("cannot create raft logger %v", err)
}
} else if cfg.LoggerCore != nil && cfg.LoggerWriteSyncer != nil {
c.Logger = logutil.NewRaftLoggerFromZapCore(cfg.LoggerCore, cfg.LoggerWriteSyncer)
}
}

Expand Down Expand Up @@ -519,9 +523,13 @@ func restartNode(cfg ServerConfig, snapshot *raftpb.Snapshot) (types.ID, *member
if cfg.Logger != nil {
// called after capnslog setting in "init" function
var err error
c.Logger, err = logutil.NewRaftLogger(cfg.LoggerConfig)
if err != nil {
log.Fatalf("cannot create raft logger %v", err)
if cfg.LoggerConfig != nil {
c.Logger, err = logutil.NewRaftLogger(cfg.LoggerConfig)
if err != nil {
log.Fatalf("cannot create raft logger %v", err)
}
} else if cfg.LoggerCore != nil && cfg.LoggerWriteSyncer != nil {
c.Logger = logutil.NewRaftLoggerFromZapCore(cfg.LoggerCore, cfg.LoggerWriteSyncer)
}
}

Expand Down Expand Up @@ -611,9 +619,13 @@ func restartAsStandaloneNode(cfg ServerConfig, snapshot *raftpb.Snapshot) (types
}
if cfg.Logger != nil {
// called after capnslog setting in "init" function
c.Logger, err = logutil.NewRaftLogger(cfg.LoggerConfig)
if err != nil {
log.Fatalf("cannot create raft logger %v", err)
if cfg.LoggerConfig != nil {
c.Logger, err = logutil.NewRaftLogger(cfg.LoggerConfig)
if err != nil {
log.Fatalf("cannot create raft logger %v", err)
}
} else if cfg.LoggerCore != nil && cfg.LoggerWriteSyncer != nil {
c.Logger = logutil.NewRaftLoggerFromZapCore(cfg.LoggerCore, cfg.LoggerWriteSyncer)
}
}

Expand Down

0 comments on commit 1b0badc

Please sign in to comment.