跳过正文

使用lumberjack对gorm日志进行分割

·112 字
目录

示例demo
#

package mysql

import (
	"log"

	"github.com/natefinch/lumberjack"
	"gorm.io/driver/mysql"
	"gorm.io/gorm"
	"gorm.io/gorm/logger"
)

func InitMySQL() {
    gormConf := &gorm.Config{
		Logger:      getLogger(),
		QueryFields: true,
	}

    dsn := "xxxxxxx"
    db, err := gorm.Open(mysql.Open(dsn), gormConf)

    //.......
}

func getLogger() logger.Interface {
    lg := logger.New(getLogWriter(), logger.Config{
		SlowThreshold:             50 * time.Millisecond,
		Colorful:                  false,
		IgnoreRecordNotFoundError: false,
		LogLevel:                  logger.Silent,
	})

    return lg
}

func getLogWriter() logger.Writer {
	writer := &lumberjack.Logger{
		Filename:   "xxx",  // 日志文件地址
		MaxSize:    500,    // 500MB 
		MaxBackups: 5,      // 分割文件数量
		MaxAge:     5,      // 保存天数
		Compress:   false,  // 是否压缩日志
	}

    return log.New(writer, "\n", log.LstdFlags)

	return 
}