请问下大佬们 可以用beego的 logs 日志模块打印 gorm 最终执行的sql语句嘛?

misitebao · 2019-10-02 06:09:13 · 3180 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2019-10-02 06:09:13 的主题,其中的信息可能已经有所发展或是发生改变。

这里有几个问题

  • 1第一个问题:beego 日志模块你们是在程序启动时候的 初始化日志模块 然后在程序里面直接los.去调用(像下面这样)
package main

import (
    "github.com/astaxie/beego/logs"
    "guanwang/models"
)

func main() {
    //beego.Run()
    //models.AddUser(1)

    //添加输出引擎
    //logs.SetLogger("console")
    logs.SetLogger(logs.AdapterConsole, `{"level":7,"color":true}`)

    logs.EnableFuncCallDepth(true)

    models.DBInit()


    models.AddUser("zhangsan")
}
    logs.Debug("Debug: %v", "Debug")
    logs.Warn("Warn: %v", map[string]int{"key": 2016})
    logs.Error("Error: %v %v", "Error", "Error")
    logs.Critical("Critical: %v","Critical")

还是说 每次需要用日志的时候 实例化一个日志对象 去调用(类似下面这样,这是在网上看到别这样做的)

func main() {
    log := logs.NewLogger(10000)  // 创建一个日志记录器,参数为缓冲区的大小
    log.SetLogger("console", "")  // 设置日志记录方式:控制台记录
    log.SetLevel(logs.LevelDebug) // 设置日志写入缓冲区的等级:Debug级别(最低级别,所以所有log都会输入到缓冲区)
    log.EnableFuncCallDepth(true) // 输出log时能显示输出文件名和行号(非必须)

    log.Emergency("Emergency")
    log.Alert("Alert")
    log.Critical("Critical")
    log.Error("Error")
    log.Warning("Warning")
    log.Notice("Notice")
    log.Informational("Informational")
    log.Debug("Debug")

    log.Close()
}
  • 第二个问题:我beego项目 orm没有使用beego自带的 用的是gorm 那我能不能用beego的日志模块 去打印gorm 每次执行最终执行的sql语句 如果不能的话 那我怎么才能得到每次gorm执行操作最终执行的sql语句 注意:我不是说的 db.LogMode(true)

上面是我的问题 希望有做过的大佬 或者知道怎么做的大佬 能指点下 谢谢:smile::smile::smile:


有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

3180 次点击  
加入收藏 微博
3 回复  |  直到 2020-09-08 11:45:48
liujundezhanghao
liujundezhanghao · #1 · 5年之前
    orm.Debug = true
    errFile,_:=os.OpenFile("logs/access.log",os.O_CREATE|os.O_WRONLY|os.O_APPEND,0666)

    //Stdout = NewFile(uintptr(syscall.Stdout), "/dev/stdout")
    orm.DebugLog = orm.NewLog(errFile)
avtion
avtion · #2 · 5年之前

当然可以,都是一样的道理,使用GORM v2,可以参考我发的文章,只需要将输出到Opentracing的内容输出到Beego的日志即可,具体看第二节第三节 Golang 上手GORM V2 + Opentracing链路追踪优化CRUD体验(源码阅读)

yykpf
yykpf · #3 · 5年之前
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传