1. 首页
  2. 主题
  3. Go问与答

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

misitebao · · 3394 次点击
### 这里有几个问题 - 1第一个问题:beego 日志模块你们是在程序启动时候的 初始化日志模块 然后在程序里面直接`los.`去调用(像下面这样) ```go 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") } ``` ```go 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") ``` 还是说 每次需要用日志的时候 实例化一个日志对象 去调用(类似下面这样,这是在网上看到别这样做的) ```go 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:
当然可以,都是一样的道理,使用GORM v2,可以参考我发的文章,只需要将输出到Opentracing的内容输出到Beego的日志即可,具体看`第二节`和`第三节` [Golang 上手GORM V2 + Opentracing链路追踪优化CRUD体验(源码阅读)](https://studygolang.com/topics/12120)
#2
更多评论
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)
#1
可以参考这个 https://blog.csdn.net/qq_42015552/article/details/90255750
#3

用户登录

没有账号?注册

今日阅读排行

    加载中

一周阅读排行

    加载中