美文网首页
golang logs.info 打印不准确

golang logs.info 打印不准确

作者: 東玖零 | 来源:发表于2021-01-05 17:46 被阅读0次

由于beego的版本升级,beego.info被标识为过期方法,我们就更新成了logs.info,结果打印出来的日志定位到的文件不准确。

我在filter.go文件中打印了请求url及form参数,logs.Info("--工程唯一标识--", req.RequestURI, req.PostForm)

在日志中搜索 工程唯一标识 结果显示是在router.go:600

看了一下以前的配置调用深度是4:

import (
    "github.com/astaxie/beego/logs"
    "strings"
)
func Init() {
    logs.EnableFuncCallDepth(true)
    logs.SetLogFuncCallDepth(4)
    logs.SetLevel(logs.LevelInformational)
}

搜索得出SetLogFuncCallDepth默认是2,修改这个值时打印的文件确实发生了变化。

由于工程中有以前的beego.info的使用,没有完全替换成logs.info,所以无论怎么修改都会出现不正确的输出。

无奈之下把beego.info的实现,搬到我的tools包下logger文件里了,搬个代码:

func Info(v ...interface{}) {
    logs.Info(generateFmtStr(len(v)), v...)
}

func generateFmtStr(n int) string {
    return strings.Repeat("%v ", n)
}

在其他地方调用tools.info()即可。

相关文章

网友评论

      本文标题:golang logs.info 打印不准确

      本文链接:https://www.haomeiwen.com/subject/tsywoktx.html