mirror of
https://github.com/go-eagle/eagle.git
synced 2025-09-26 20:41:26 +08:00
feat: add log writer for gorm and add New func for log (#155)
* feat: add logger writer for gorm * feat: fix check cond * feat: add New func for creating a custom logger * docs: update changelog
This commit is contained in:
@@ -4,6 +4,7 @@
|
||||
|
||||
- feat: support async flush log to disk
|
||||
- feat: add re-entry and automatic renewal for redis lock
|
||||
- feat: add gorm logger
|
||||
- chore: using gorm offical plguin for tracing and metrics
|
||||
|
||||
## v1.9.0
|
||||
|
@@ -49,7 +49,7 @@ func loadConf() (ret *Config, err error) {
|
||||
return &cfg, nil
|
||||
}
|
||||
|
||||
// Init init log
|
||||
// Init init log and return a global logger
|
||||
func Init(opts ...Option) Logger {
|
||||
var err error
|
||||
cfg, err := loadConf()
|
||||
@@ -72,6 +72,22 @@ func Init(opts ...Option) Logger {
|
||||
return log
|
||||
}
|
||||
|
||||
// New create a customer logger
|
||||
func New(opts ...Option) Logger {
|
||||
var err error
|
||||
cfg, err := loadConf()
|
||||
if err != nil {
|
||||
panic(fmt.Sprintf("log: New load logger conf err: %v", err))
|
||||
}
|
||||
|
||||
l, err := newLoggerWithCallerSkip(cfg, 1, opts...)
|
||||
if err != nil {
|
||||
_ = fmt.Errorf("log: New newLoggerWithCallerSkip err: %v", err)
|
||||
}
|
||||
|
||||
return l
|
||||
}
|
||||
|
||||
// GetLogger return a log
|
||||
func GetLogger() Logger {
|
||||
return log
|
||||
|
22
pkg/storage/orm/log_writer.go
Normal file
22
pkg/storage/orm/log_writer.go
Normal file
@@ -0,0 +1,22 @@
|
||||
package orm
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/go-eagle/eagle/pkg/log"
|
||||
"gorm.io/gorm/logger"
|
||||
)
|
||||
|
||||
type LoggerWriter struct {
|
||||
log log.Logger
|
||||
}
|
||||
|
||||
func NewLogWriter(log log.Logger) logger.Writer {
|
||||
return &LoggerWriter{
|
||||
log: log,
|
||||
}
|
||||
}
|
||||
|
||||
func (l *LoggerWriter) Printf(s string, v ...interface{}) {
|
||||
l.log.Info(fmt.Sprintf(s, v...))
|
||||
}
|
@@ -35,6 +35,8 @@ var (
|
||||
DBMap = make(map[string]*gorm.DB)
|
||||
// DBLock database locker
|
||||
DBLock sync.Mutex
|
||||
// logWriter log writer
|
||||
LogWriter logger.Writer
|
||||
)
|
||||
|
||||
// Config database config
|
||||
@@ -239,9 +241,17 @@ func gormConfig(c *Config) *gorm.Config {
|
||||
}
|
||||
// 只打印慢查询
|
||||
if c.SlowThreshold > 0 {
|
||||
var writer logger.Writer
|
||||
//将标准输出作为Writer
|
||||
writer = log.New(os.Stdout, "\r\n", log.LstdFlags)
|
||||
// use custom logger
|
||||
if LogWriter != nil {
|
||||
writer = LogWriter
|
||||
}
|
||||
|
||||
// new logger with writer
|
||||
config.Logger = logger.New(
|
||||
//将标准输出作为Writer
|
||||
log.New(os.Stdout, "\r\n", log.LstdFlags),
|
||||
writer,
|
||||
logger.Config{
|
||||
//设定慢查询时间阈值
|
||||
SlowThreshold: c.SlowThreshold, // nolint: golint
|
||||
|
Reference in New Issue
Block a user