### 这里有几个问题
- 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:
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
更多评论
当然可以,都是一样的道理,使用GORM v2,可以参考我发的文章,只需要将输出到Opentracing的内容输出到Beego的日志即可,具体看`第二节`和`第三节`
[Golang 上手GORM V2 + Opentracing链路追踪优化CRUD体验(源码阅读)](https://studygolang.com/topics/12120)
#2