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


    使用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

  • 相关阅读:
    playbook实现httpd服务安装与配置
    Ansible介绍与安装使用
    Servlet 连接mysql数据库
    day04作业
    day03python作业
    正式课第一天作业
    函数
    周作业
    数据类型
    day03作业
  • 原文地址:https://www.cnblogs.com/taoshihan/p/13846256.html
Copyright © 2020-2023  润新知