mirror of
https://github.com/gravitl/netmaker.git
synced 2026-10-12 02:15:06 +00:00
46 lines
1.1 KiB
Go
46 lines
1.1 KiB
Go
package db
|
|
|
|
import (
|
|
"log"
|
|
"os"
|
|
"strconv"
|
|
"strings"
|
|
"time"
|
|
|
|
"gorm.io/gorm/logger"
|
|
)
|
|
|
|
// newGormLogger returns a GORM logger.
|
|
//
|
|
// Set SQL_DEBUG=true (or "1" / "info") to log every SQL statement with duration.
|
|
// Set SQL_DEBUG=slow to only log statements slower than SQL_SLOW_MS (default 200ms)
|
|
// plus errors. Default remains Silent.
|
|
func newGormLogger() logger.Interface {
|
|
mode := strings.ToLower(strings.TrimSpace(os.Getenv("SQL_DEBUG")))
|
|
if mode == "" || mode == "false" || mode == "0" {
|
|
return logger.Default.LogMode(logger.Silent)
|
|
}
|
|
|
|
slowThreshold := 200 * time.Millisecond
|
|
if v := os.Getenv("SQL_SLOW_MS"); v != "" {
|
|
if n, err := strconv.Atoi(v); err == nil && n > 0 {
|
|
slowThreshold = time.Duration(n) * time.Millisecond
|
|
}
|
|
}
|
|
|
|
level := logger.Info
|
|
if mode == "slow" || mode == "warn" {
|
|
level = logger.Warn
|
|
}
|
|
|
|
return logger.New(
|
|
log.New(os.Stdout, "[gorm] ", log.LstdFlags|log.Lmicroseconds),
|
|
logger.Config{
|
|
SlowThreshold: slowThreshold,
|
|
LogLevel: level,
|
|
IgnoreRecordNotFoundError: true,
|
|
Colorful: false,
|
|
},
|
|
)
|
|
}
|