[GO] gin 框架gorm下使用logrus记录sql语句

前端之家收集整理的这篇文章主要介绍了[GO] gin 框架gorm下使用logrus记录sql语句前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

使用gin gorm时,默认sql语句是打印在终端的,想要记录到文件中,可以使用logrus来记录到文件

先把logrus的一些配置做好

package tools

import (
    "fmt"
    github.com/gin-gonic/gingithub.com/sirupsen/logrusospathtime"
)

func Logger() *logrus.Logger {
    now := time.Now()
    logFilePath := ""
    if dir,err := os.Getwd(); err == nil {
        logFilePath = dir + /logs/
    }
    if err := os.MkdirAll(logFilePath,0777); err != nil {
        fmt.Println(err.Error())
    }
    logFileName := now.Format(2006-01-02") + .log"
    //日志文件
    fileName := path.Join(logFilePath,logFileName)
    if _,err := os.Stat(fileName); err != nil {
         nil {
            fmt.Println(err.Error())
        }
    }
    写入文件
    src,err := os.OpenFile(fileName,os.O_APPEND|os.O_WRONLY,os.ModeAppend)
    if err != nil {
        fmt.Println(err,err)
    }

    实例化
    logger := logrus.New()

    设置输出
    logger.Out = src

    设置日志级别
    logger.SetLevel(logrus.DebugLevel)

    设置日志格式
    logger.SetFormatter(&logrus.TextFormatter{
        TimestampFormat: 2006-01-02 15:04:05return logger
}

在初始化gorm的地方设置logger,把上面的logger设置进去就可以了

    DB,err = gorm.Open(MysqL nil {
        panic(数据库连接失败!)
    }
    DB.SingularTable(true)
    DB.LogMode()
    DB.SetLogger(tools.Logger())
    DB.DB().SetMaxIdleConns(10)
    DB.DB().SetMaxOpenConns(100)

文件中记录的sql

 

猜你在找的Go相关文章