From 0aa646c2181a934b8c838c3c8fd2ec56e3daf1ca Mon Sep 17 00:00:00 2001 From: Ravi Kumar Kempapura Srinivasa Date: Mon, 20 Sep 2021 14:16:37 +0200 Subject: [PATCH] Use child loggers for Redis and database --- cmd/icingadb/main.go | 10 ++++++++-- internal/command/command.go | 29 ++++------------------------- 2 files changed, 12 insertions(+), 27 deletions(-) diff --git a/cmd/icingadb/main.go b/cmd/icingadb/main.go index a227e346..890b1926 100644 --- a/cmd/icingadb/main.go +++ b/cmd/icingadb/main.go @@ -48,7 +48,10 @@ func run() int { logger.Info("Starting Icinga DB") - db := cmd.Database() + db, err := cmd.Database(logs.GetChildLogger("database")) + if err != nil { + logger.Fatalf("%+v", errors.Wrap(err, "can't create database connection pool from config")) + } defer db.Close() { logger.Info("Connecting to database") @@ -62,7 +65,10 @@ func run() int { logger.Fatalf("%+v", err) } - rc := cmd.Redis() + rc, err := cmd.Redis(logs.GetChildLogger("redis")) + if err != nil { + logger.Fatalf("%+v", errors.Wrap(err, "can't create Redis client from config")) + } { logger.Info("Connecting to Redis") _, err := rc.Ping(context.Background()).Result() diff --git a/internal/command/command.go b/internal/command/command.go index 1450b445..f9c35816 100644 --- a/internal/command/command.go +++ b/internal/command/command.go @@ -17,7 +17,6 @@ import ( type Command struct { Flags *config.Flags Config *config.Config - Logger *zap.SugaredLogger } // New creates and returns a new Command, parses CLI flags and YAML the config, and initializes the logger. @@ -42,38 +41,18 @@ func New() *Command { utils.Fatal(err) } - loggerCfg := zap.NewDevelopmentConfig() - // Disable zap's automatic stack trace capturing, as we call errors.Wrap() before logging with "%+v". - loggerCfg.DisableStacktrace = true - logger, err := loggerCfg.Build() - if err != nil { - utils.Fatal(errors.Wrap(err, "can't create logger")) - } - sugar := logger.Sugar() - return &Command{ Flags: flags, Config: cfg, - Logger: sugar, } } // Database creates and returns a new icingadb.DB connection from config.Config. -func (c Command) Database() *icingadb.DB { - db, err := c.Config.Database.Open(c.Logger) - if err != nil { - c.Logger.Fatalf("%+v", errors.Wrap(err, "can't create database connection pool from config")) - } - - return db +func (c Command) Database(l *zap.SugaredLogger) (*icingadb.DB, error) { + return c.Config.Database.Open(l) } // Redis creates and returns a new icingaredis.Client connection from config.Config. -func (c Command) Redis() *icingaredis.Client { - rc, err := c.Config.Redis.NewClient(c.Logger) - if err != nil { - c.Logger.Fatalf("%+v", errors.Wrap(err, "can't create Redis client from config")) - } - - return rc +func (c Command) Redis(l *zap.SugaredLogger) (*icingaredis.Client, error) { + return c.Config.Redis.NewClient(l) }