使用gin gorm时 , 默认sql语句是打印在终端的 ,想要记录到文件中 , 可以使用logrus来记录到文件
先把logrus的一些配置做好
- package tools
- import (
- "fmt"
- "github.com/gin-gonic/gin"
- "github.com/sirupsen/logrus"
- "os"
- "path"
- "time"
- )
- 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 {
- if _, err := os.Create(fileName); err != 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:05",
- })
- return logger
- }
在初始化gorm的地方设置logger , 把上面的logger设置进去就可以了
- DB, err = gorm.Open("mysql", dsn)
- if err != nil {
- panic("数据库连接失败!")
- }
- DB.SingularTable(true)
- DB.LogMode(true)
- DB.SetLogger(tools.Logger())
- DB.DB().SetMaxIdleConns(10)
- DB.DB().SetMaxOpenConns(100)
文件中记录的sql
