Use child loggers for Redis and database

This commit is contained in:
Ravi Kumar Kempapura Srinivasa 2021-09-20 14:16:37 +02:00 committed by Eric Lippmann
parent d3cdc8023b
commit 0aa646c218
2 changed files with 12 additions and 27 deletions

View file

@ -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()

View file

@ -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)
}