Logging queries

chdebug

For quick debugging, you can print executed queries to stdout. First, you need to install chdebug package:

go get github.com/uptrace/go-clickhouse/chdebug

Then add the provided query hook which by default only prints failed queries:

db := ch.Connect(ch.WithDatabase("test"))
db.AddQueryHook(chdebug.NewQueryHook(chdebug.WithVerbose(true)))

To print all queries, use WithVerbose option:

chdebug.NewQueryHook(chdebug.WithVerbose(true))

You can also disable the hook by default and use environment variables to enable it when needed:

chdebug.NewQueryHook(
    // disable the hook
    chdebug.WithEnabled(false),

    // CHDEBUG=1 logs failed queries
    // CHDEBUG=2 logs all queries
    chdebug.FromEnv("CHDEBUG"),
)