beego源码解析之Log

Posted better_hui

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了beego源码解析之Log相关的知识,希望对你有一定的参考价值。

例子

 

"github.com/astaxie/beego/logs"
​
func main1() {
   //通用的日志输出
   logs.Info("日志输出")
   //多实例日志
   log :=logs.NewLogger()
   log.Info("asdf")
   beego.Run()
}

通用日志输出调用链:

//1、输出日志
logs.Info("日志输出")
​
//2、logs/log.go 中内置了beeLogger , 我们调用Info()方法内部调用了beeLogger.Info()
var beeLogger = NewLogger()
func Info(f interface{}, v ...interface{}) {
   beeLogger.Info(formatLog(f, v...))
}

 

初始化

config.go -> init() -> parseConfig() -> logs.Reset()

//log初始化
//清空原有的adapter
logs.Reset()
//循环设置conf中的adapter
for adaptor, config := range BConfig.Log.Outputs {
   err := logs.SetLogger(adaptor, config)
   if err != nil {
      fmt.Fprintln(os.Stderr, fmt.Sprintf("%s with the config %q got err:%s", adaptor, config, err.Error()))
   }
}
logs.SetLogFuncCall(BConfig.Log.FileLineNum)

 

以上是关于beego源码解析之Log的主要内容,如果未能解决你的问题,请参考以下文章

beego源码解析之cache

beego源码解析之session

beego源码解析之配置文件

Golang之beego读取配置信息,输出log模块

Beego框架之请求数据处理

新版beego没有beego.Info的解决方法