mirror of
https://gitee.ltd/lxh/logger.git
synced 2025-10-23 23:06:19 +08:00
Compare commits
2 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
40a3dc9339 | ||
|
ebae5c29cd |
7
gorm.go
7
gorm.go
@@ -79,10 +79,15 @@ func NewGormLoggerWithConfig(config gl.Config) gl.Interface {
|
||||
|
||||
// DefaultGormLogger 默认的日志实现
|
||||
func DefaultGormLogger() gl.Interface {
|
||||
// 默认日志级别为Info,如果是生产环境,就是Error
|
||||
logLevel := gl.Info
|
||||
if config.Mode == Prod {
|
||||
logLevel = gl.Error
|
||||
}
|
||||
return &gormLogger{gl.Config{
|
||||
SlowThreshold: time.Second, // Slow SQL threshold
|
||||
IgnoreRecordNotFoundError: false, // 忽略没找到结果的错误
|
||||
LogLevel: gl.Info, // Log level
|
||||
LogLevel: logLevel, // Log level
|
||||
Colorful: false, // Disable color
|
||||
}}
|
||||
}
|
||||
|
25
gorm_test.go
25
gorm_test.go
@@ -1,9 +1,12 @@
|
||||
package logger
|
||||
|
||||
import (
|
||||
"gitee.ltd/lxh/logger/log"
|
||||
"gorm.io/driver/mysql"
|
||||
"gorm.io/gorm"
|
||||
gl "gorm.io/gorm/logger"
|
||||
"testing"
|
||||
"time"
|
||||
)
|
||||
|
||||
func TestGormLogger(t *testing.T) {
|
||||
@@ -11,7 +14,27 @@ func TestGormLogger(t *testing.T) {
|
||||
|
||||
engine, err := gorm.Open(mysql.Open(dsn), &gorm.Config{Logger: DefaultGormLogger()})
|
||||
if err != nil {
|
||||
Say.Panicf("mysql connect error: %s", err.Error())
|
||||
log.Panicf("mysql connect error: %s", err.Error())
|
||||
}
|
||||
|
||||
var count int64
|
||||
if err := engine.Table("t_tenant").Count(&count).Error; err != nil {
|
||||
t.Log(err)
|
||||
}
|
||||
t.Logf("count: %d", count)
|
||||
}
|
||||
|
||||
func TestGormLoggerWithConfig(t *testing.T) {
|
||||
dsn := "saas:saas123@tcp(10.11.0.10:3307)/saas_tenant?charset=utf8mb4&parseTime=True&loc=Local"
|
||||
|
||||
engine, err := gorm.Open(mysql.Open(dsn), &gorm.Config{Logger: NewGormLoggerWithConfig(gl.Config{
|
||||
SlowThreshold: time.Second, // Slow SQL threshold
|
||||
IgnoreRecordNotFoundError: false, // 忽略没找到结果的错误
|
||||
LogLevel: gl.Warn, // Log level
|
||||
Colorful: false, // Disable color
|
||||
})})
|
||||
if err != nil {
|
||||
log.Panicf("mysql connect error: %s", err.Error())
|
||||
}
|
||||
|
||||
var count int64
|
||||
|
@@ -8,11 +8,11 @@ import (
|
||||
)
|
||||
|
||||
var config LogConfig
|
||||
var Say *zap.SugaredLogger
|
||||
var initialized bool
|
||||
|
||||
// 避免异常,在第一次调用时初始化一个只打印到控制台的logger
|
||||
func init() {
|
||||
if Say == nil {
|
||||
if !initialized {
|
||||
// 从环境变量读取配置
|
||||
var c LogConfig
|
||||
if err := env.Parse(&c); err != nil {
|
||||
@@ -48,7 +48,7 @@ func InitLogger(c LogConfig) {
|
||||
// 增加 caller 信息
|
||||
// AddCallerSkip 输出的文件名和行号是调用封装函数的位置,而不是调用日志函数的位置
|
||||
logger := zap.New(zapcore.NewTee(cores...), zap.AddCaller(), zap.AddCallerSkip(1))
|
||||
Say = logger.Sugar()
|
||||
initialized = true
|
||||
// 给GORM单独生成一个
|
||||
gormZap = zap.New(zapcore.NewTee(cores...), zap.AddCaller(), zap.AddCallerSkip(3)).Sugar()
|
||||
zap.ReplaceGlobals(logger)
|
||||
|
@@ -8,11 +8,11 @@ import (
|
||||
|
||||
func TestLogger(t *testing.T) {
|
||||
InitLogger(LogConfig{Mode: Dev, LokiEnable: false, FileEnable: true})
|
||||
Say.Debug("芜湖")
|
||||
log.Debug("芜湖")
|
||||
}
|
||||
|
||||
func TestLogger1(t *testing.T) {
|
||||
Say.Info("我是测试消息")
|
||||
log.Info("我是测试消息")
|
||||
time.Sleep(5 * time.Second)
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user