-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlogger.go
More file actions
36 lines (32 loc) · 1021 Bytes
/
logger.go
File metadata and controls
36 lines (32 loc) · 1021 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package gormx
import (
"time"
"github.com/fireflycore/gormx/internal"
loger "gorm.io/gorm/logger"
)
// NewLogger 根据 Config 构造 gorm logger。
func NewLogger(c *Conf) loger.Interface {
// c 为空或未开启 Logger 时,直接丢弃日志输出。
if c == nil || !c.Logger {
// Discard 为 gorm 提供的空实现。
return loger.Discard
}
// internal.New 返回一个实现 loger.Interface 的自定义 logger。
return internal.NewLogger(internal.Config{
// Config 复用 gorm 自带的 logger.Config。
Config: loger.Config{
// SlowThreshold 为慢 SQL 阈值。
SlowThreshold: 200 * time.Millisecond,
// LogLevel 使用 Info,输出 SQL Trace。
LogLevel: loger.Info,
// Colorful 控制控制台彩色输出。
Colorful: true,
},
// Console 控制是否输出到控制台。
Console: c.loggerConsole,
// Database 记录库名,便于日志聚合。
Database: c.Database,
// DatabaseType 记录库类型,便于日志聚合。
DatabaseType: c.Type,
})
}