init from gitlab

This commit is contained in:
texm
2023-04-25 14:33:14 +08:00
parent 6a85a41ff0
commit c8202a5c82
281 changed files with 19861 additions and 1 deletions

View File

@@ -0,0 +1,70 @@
package db
import (
"context"
"fmt"
"time"
"github.com/rs/zerolog"
"gorm.io/gorm/logger"
)
var durationUnits = map[time.Duration]string{
time.Nanosecond: "elapsed_ns",
time.Microsecond: "elapsed_us",
time.Millisecond: "elapsed_ms",
time.Second: "elapsed",
time.Minute: "elapsed_min",
time.Hour: "elapsed_hr",
}
type Logger struct{}
func (l Logger) LogMode(logger.LogLevel) logger.Interface {
return l
}
func (l Logger) Error(ctx context.Context, msg string, opts ...interface{}) {
zerolog.Ctx(ctx).Error().Msg(fmt.Sprintf(msg, opts...))
}
func (l Logger) Warn(ctx context.Context, msg string, opts ...interface{}) {
zerolog.Ctx(ctx).Warn().Msg(fmt.Sprintf(msg, opts...))
}
func (l Logger) Info(ctx context.Context, msg string, opts ...interface{}) {
zerolog.Ctx(ctx).Info().Msg(fmt.Sprintf(msg, opts...))
}
func (l Logger) Trace(ctx context.Context, begin time.Time, f func() (string, int64), err error) {
zl := zerolog.Ctx(ctx)
var event *zerolog.Event
if err != nil {
event = zl.Debug()
} else {
event = zl.Trace()
}
durationKey, found := durationUnits[zerolog.DurationFieldUnit]
if !found {
zl.Error().
Dur("zerolog.DurationFieldUnit", zerolog.DurationFieldUnit).
Msg("unknown value for zerolog.DurationFieldUnit")
durationKey = "elapsed_"
}
event.Dur(durationKey, time.Since(begin))
sql, rows := f()
if sql != "" {
event.Str("sql", sql)
}
if rows > -1 {
event.Int64("rows", rows)
}
event.Send()
return
}