美文网首页
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