GoBlog/databaseHooks.go

22 lines
526 B
Go
Raw Normal View History

package main
import (
"context"
"log"
"time"
)
type dbHooks struct{}
const dbHooksBegin contextKey = "begin"
func (h *dbHooks) Before(ctx context.Context, query string, args ...interface{}) (context.Context, error) {
return context.WithValue(ctx, dbHooksBegin, time.Now()), nil
}
func (h *dbHooks) After(ctx context.Context, query string, args ...interface{}) (context.Context, error) {
begin := ctx.Value(dbHooksBegin).(time.Time)
log.Printf("SQL: %s %q (%s)\n", query, args, time.Since(begin))
return ctx, nil
}