Skip to content
代码片段 群组 项目
提交 aa252ef0 编辑于 作者: 曾宪学's avatar 曾宪学
浏览文件

feat: 日志类型

上级 ddc8da11
No related branches found
标签 v0.0.4
无相关合并请求
package logx
import (
"context"
"fmt"
"log/slog"
"time"
"gorm.io/gorm/logger"
)
type gormLogger struct {
log *slog.Logger
}
func NewGormLogger(log *slog.Logger) logger.Interface {
return &gormLogger{
log: log.With("type", "gorm"), // 添加类型
}
}
func (g *gormLogger) LogMode(level logger.LogLevel) logger.Interface {
return g
}
func (g *gormLogger) Info(ctx context.Context, s string, i ...any) {
g.log.InfoContext(ctx, fmt.Sprintf(s, i...))
}
func (g *gormLogger) Warn(ctx context.Context, s string, i ...interface{}) {
g.log.WarnContext(ctx, fmt.Sprintf(s, i...))
}
func (g *gormLogger) Error(ctx context.Context, s string, i ...interface{}) {
g.log.ErrorContext(ctx, fmt.Sprintf(s, i...))
}
func (g *gormLogger) Trace(ctx context.Context, begin time.Time, fc func() (sql string, rowsAffected int64), err error) {
// 执行耗时
latency := time.Since(begin)
sql, rows := fc()
if err != nil {
g.log.Error("sql trace", "latency", latency.Milliseconds(), "sql", sql, "rows", rows, "err", err)
} else {
g.log.Debug("sql trace", "latency", latency.Milliseconds(), "sql", sql, "rows", rows)
}
}
......@@ -29,7 +29,7 @@ func NewApp(appName string, log *slog.Logger) *fiber.App {
middlewares := []any{
requestid.New(),
Recover(),
Logger(LoggerConfig{Log: log}),
Logger(LoggerConfig{Log: log.With("type", "http")}),
Error(),
cors.New(),
}
......
0% 加载中 .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册