diff options
author | Patrick Steinhardt <psteinhardt@gitlab.com> | 2023-08-21 08:25:20 +0300 |
---|---|---|
committer | Patrick Steinhardt <psteinhardt@gitlab.com> | 2023-09-05 08:40:40 +0300 |
commit | 9ca8b86102188f14e9eeb600127d0ecd15eaea8c (patch) | |
tree | 0f06a7a70831301e4fa7d5e4233ccc9a37bba509 | |
parent | c48d4c7530b896de0cd78753442f78b6e5bebb00 (diff) |
cli/praefect: Refactor code to not use logger before it is configured
The "serve" subcommand already starts using the logger before it is
configured. Refactor the code to stop doing this.
-rw-r--r-- | internal/cli/praefect/serve.go | 36 | ||||
-rw-r--r-- | internal/praefect/dependencies.go | 2 | ||||
-rw-r--r-- | internal/praefect/server.go | 8 |
3 files changed, 23 insertions, 23 deletions
diff --git a/internal/cli/praefect/serve.go b/internal/cli/praefect/serve.go index 617d5ecd7..36440c7b0 100644 --- a/internal/cli/praefect/serve.go +++ b/internal/cli/praefect/serve.go @@ -64,38 +64,38 @@ func serveAction(ctx *cli.Context) error { return unexpectedPositionalArgsError{Command: ctx.Command.Name} } - logger := log.Default() // The ctx.Command.Name can't be used here because if `praefect -config FILE` is used // it will be set to 'praefect' instead of 'serve'. - pathToConfigFile := mustProvideConfigFlag(ctx, "serve") + configPath := mustProvideConfigFlag(ctx, "serve") - logger.Infof("Starting %s", version.GetVersionString("Praefect")) - - if err := run(ctx.App.Name, logger, pathToConfigFile); err != nil { - logger.WithError(err).Error("Praefect shutdown") - return cli.Exit("", 1) - } - - logger.Info("Praefect shutdown") - - return nil -} - -func run(appName string, logger *logrus.Entry, configPath string) error { conf, err := readConfig(configPath) if err != nil { return err } - if _, err := log.Configure(os.Stdout, conf.Logging.Format, conf.Logging.Level); err != nil { + logger, err := log.Configure(os.Stdout, conf.Logging.Format, conf.Logging.Level) + if err != nil { return fmt.Errorf("configuring logger: %w", err) } + logger.Infof("Starting %s", version.GetVersionString("Praefect")) + if !conf.Failover.Enabled && conf.Failover.ElectionStrategy != "" { logger.WithField("election_strategy", conf.Failover.ElectionStrategy).Warn( "ignoring configured election strategy as failover is disabled") } + if err := run(conf, ctx.App.Name, logger); err != nil { + logger.WithError(err).Error("Praefect shutdown") + return cli.Exit("", 1) + } + + logger.Info("Praefect shutdown") + + return nil +} + +func run(conf config.Config, appName string, logger logrus.FieldLogger) error { configure(logger, appName, conf) starterConfigs, err := getStarterConfigs(conf) @@ -154,7 +154,7 @@ func configure(logger logrus.FieldLogger, appName string, conf config.Config) { func server( cfgs []starter.Config, conf config.Config, - logger *logrus.Entry, + logger logrus.FieldLogger, b bootstrap.Listener, promreg prometheus.Registerer, dbPromRegistry interface { @@ -571,7 +571,7 @@ func getStarterConfigs(conf config.Config) ([]starter.Config, error) { return cfgs, nil } -func initDatabase(ctx context.Context, logger *logrus.Entry, conf config.Config) (*sql.DB, func(), error) { +func initDatabase(ctx context.Context, logger logrus.FieldLogger, conf config.Config) (*sql.DB, func(), error) { openDBCtx, cancel := context.WithTimeout(ctx, 30*time.Second) defer cancel() db, err := glsql.OpenDB(openDBCtx, conf.DB) diff --git a/internal/praefect/dependencies.go b/internal/praefect/dependencies.go index 89aac0e7e..9184ab466 100644 --- a/internal/praefect/dependencies.go +++ b/internal/praefect/dependencies.go @@ -14,7 +14,7 @@ import ( // Dependencies consolidates Praefect service dependencies for injection. type Dependencies struct { Config config.Config - Logger *logrus.Entry + Logger logrus.FieldLogger Coordinator *Coordinator Director proxy.StreamDirector NodeMgr nodes.Manager diff --git a/internal/praefect/server.go b/internal/praefect/server.go index c425a0eb1..84e75eb66 100644 --- a/internal/praefect/server.go +++ b/internal/praefect/server.go @@ -45,7 +45,7 @@ import ( // NewBackchannelServerFactory returns a ServerFactory that serves the RefTransactionServer on the backchannel // connection. -func NewBackchannelServerFactory(logger *logrus.Entry, refSvc gitalypb.RefTransactionServer, registry *sidechannel.Registry) backchannel.ServerFactory { +func NewBackchannelServerFactory(logger logrus.FieldLogger, refSvc gitalypb.RefTransactionServer, registry *sidechannel.Registry) backchannel.ServerFactory { logMsgProducer := log.MessageProducer( log.PropagationMessageProducer(grpcmwlogrus.DefaultMessageProducer), structerr.FieldsProducer, @@ -56,7 +56,7 @@ func NewBackchannelServerFactory(logger *logrus.Entry, refSvc gitalypb.RefTransa lm.Register(sidechannel.NewServerHandshaker(registry)) srv := grpc.NewServer( grpc.ChainUnaryInterceptor( - commonUnaryServerInterceptors(logger, logMsgProducer)..., + commonUnaryServerInterceptors(logger.WithField("component", "backchannel.PraefectServer"), logMsgProducer)..., ), grpc.Creds(lm), ) @@ -130,7 +130,7 @@ func NewGRPCServer( ) unaryInterceptors := append( - commonUnaryServerInterceptors(deps.Logger, logMsgProducer), + commonUnaryServerInterceptors(deps.Logger.WithField("component", "praefect.UnaryServerInterceptor"), logMsgProducer), middleware.MethodTypeUnaryInterceptor(deps.Registry, deps.Logger), auth.UnaryServerInterceptor(deps.Config.Auth), ) @@ -142,7 +142,7 @@ func NewGRPCServer( middleware.MethodTypeStreamInterceptor(deps.Registry, deps.Logger), metadatahandler.StreamInterceptor, grpcprometheus.StreamServerInterceptor, - grpcmwlogrus.StreamServerInterceptor(deps.Logger, + grpcmwlogrus.StreamServerInterceptor(deps.Logger.WithField("component", "praefect.StreamServerInterceptor"), grpcmwlogrus.WithTimestampFormat(log.LogTimestampFormat), grpcmwlogrus.WithMessageProducer(logMsgProducer), log.DeciderOption(), |