38 lines
854 B
Go
38 lines
854 B
Go
package internal
|
|
|
|
import (
|
|
"fmt"
|
|
"github.com/flipped-aurora/gin-vue-admin/server/config"
|
|
"go.uber.org/zap"
|
|
"gorm.io/gorm/logger"
|
|
)
|
|
|
|
type Writer struct {
|
|
config config.GeneralDB
|
|
writer logger.Writer
|
|
}
|
|
|
|
func NewWriter(config config.GeneralDB, writer logger.Writer) *Writer {
|
|
return &Writer{config: config, writer: writer}
|
|
}
|
|
|
|
// Printf 格式化打印日志
|
|
func (c *Writer) Printf(message string, data ...any) {
|
|
if c.config.LogZap {
|
|
switch c.config.LogLevel() {
|
|
case logger.Silent:
|
|
zap.L().Debug(fmt.Sprintf(message, data...))
|
|
case logger.Error:
|
|
zap.L().Error(fmt.Sprintf(message, data...))
|
|
case logger.Warn:
|
|
zap.L().Warn(fmt.Sprintf(message, data...))
|
|
case logger.Info:
|
|
zap.L().Info(fmt.Sprintf(message, data...))
|
|
default:
|
|
zap.L().Info(fmt.Sprintf(message, data...))
|
|
}
|
|
return
|
|
}
|
|
c.writer.Printf(message, data...)
|
|
}
|