golang web框架设计4:日志设计

golang web framework 框架系列文章:

beego的日志设计思路来自于seelog,根据不同的level来记录日志,beego设计的日志是一个轻量级的,采用系统log.Logger接口,默认输出到os.Stdout,用户可以实现这个接口然后通过设置beego.SetLogger设置自定义的输出

const (
    LevelTrace = iota
    LevelDebug
    LevelInfo
    LevelWarning
    LevelError
    LevelCritical
)

var level = LevelTrace

func Level() int {
    return level
}

func SetLevel(l int) {
    level = l
}

上面着这一段实现日志分级,默认级别是Trace,用户可以通过SetLevel可以设置不同的分级

func Trace(v ...interface{}) {
    if level <= LevelTrace {
        BeeLogger.Printf("[T] %v\n", v)
    }
}

func Debug(v ...interface{}) {
    if level <= LevelDebug {
        BeeLogger.Printf("[D] %v\n", v)
    }
}

完整代码:

代码地址 log.go

posted @ 2019-11-19 21:22  九卷  阅读(1198)  评论(0编辑  收藏  举报