pgx icon indicating copy to clipboard operation
pgx copied to clipboard

How to use logrus with v5?

Open swanden opened this issue 1 year ago • 2 comments

In the version 4 there was a config variable config.ConnConfig.Logger, but in the 5 version there is no such varibale. Please provide the code of how to use github.com/sirupsen/logrus with jackc/pgx.

config, err := pgxpool.ParseConfig(connStr)
if err != nil {
    fmt.Fprintf(os.Stderr, "Unable to parse config: %v\n", err)
    os.Exit(1)
}
looger := &log.Logger{
    Out:          os.Stderr,
    Formatter:    new(log.JSONFormatter),
    Hooks:        make(log.LevelHooks),
    Level:        log.InfoLevel,
    ExitFunc:     os.Exit,
    ReportCaller: false,
}
config.ConnConfig.Logger = logrusadapter.NewLogger(looger)

swanden avatar Oct 04 '24 06:10 swanden

See https://github.com/jackc/pgx-logrus

jackc avatar Oct 05 '24 15:10 jackc

Hi @swanden, I think you should do something like this

import (
	pgxLogrus "github.com/jackc/pgx-logrus"
	"github.com/jackc/pgx/v5/pgxpool"
	"github.com/jackc/pgx/v5/tracelog"
)

	dbConf, err := pgxpool.ParseConfig(conf.DB.URL)
	if err != nil {
		log.Fatalf("can't parse db config url: %v\n", err)
	}

	logger := pgxLogrus.NewLogger(&logrus.Logger{
		Out:          os.Stderr,
		Formatter:    new(logrus.JSONFormatter),
		Hooks:        make(logrus.LevelHooks),
		Level:        logrus.InfoLevel,
		ExitFunc:     os.Exit,
		ReportCaller: false,
	})

	dbConf.ConnConfig.Tracer = &tracelog.TraceLog{
		Logger:   logger,
		LogLevel: tracelog.LogLevelTrace,
	}

artem-a avatar Jan 17 '25 15:01 artem-a