经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » Go语言 » 查看文章
[GO] gin 框架gorm下使用logrus记录sql语句
来源:cnblogs  作者:陶士涵  时间:2020/11/9 16:09:54  对本文有异议

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

先把logrus的一些配置做好

  1. package tools
  2. import (
  3. "fmt"
  4. "github.com/gin-gonic/gin"
  5. "github.com/sirupsen/logrus"
  6. "os"
  7. "path"
  8. "time"
  9. )
  10. func Logger() *logrus.Logger {
  11. now := time.Now()
  12. logFilePath := ""
  13. if dir, err := os.Getwd(); err == nil {
  14. logFilePath = dir + "/logs/"
  15. }
  16. if err := os.MkdirAll(logFilePath, 0777); err != nil {
  17. fmt.Println(err.Error())
  18. }
  19. logFileName := now.Format("2006-01-02") + ".log"
  20. //日志文件
  21. fileName := path.Join(logFilePath, logFileName)
  22. if _, err := os.Stat(fileName); err != nil {
  23. if _, err := os.Create(fileName); err != nil {
  24. fmt.Println(err.Error())
  25. }
  26. }
  27. //写入文件
  28. src, err := os.OpenFile(fileName, os.O_APPEND|os.O_WRONLY, os.ModeAppend)
  29. if err != nil {
  30. fmt.Println("err", err)
  31. }
  32. //实例化
  33. logger := logrus.New()
  34. //设置输出
  35. logger.Out = src
  36. //设置日志级别
  37. logger.SetLevel(logrus.DebugLevel)
  38. //设置日志格式
  39. logger.SetFormatter(&logrus.TextFormatter{
  40. TimestampFormat: "2006-01-02 15:04:05",
  41. })
  42. return logger
  43. }

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

  1. DB, err = gorm.Open("mysql", dsn)
  2. if err != nil {
  3. panic("数据库连接失败!")
  4. }
  5. DB.SingularTable(true)
  6. DB.LogMode(true)
  7. DB.SetLogger(tools.Logger())
  8. DB.DB().SetMaxIdleConns(10)
  9. DB.DB().SetMaxOpenConns(100)

文件中记录的sql

 

原文链接:http://www.cnblogs.com/taoshihan/p/13846256.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号