超级账本源码分析(六) - 日志系统

日志系统机制对于源码研究可以忽略,且相对简单,但是日志系统对于程序运行和调试必不可少,fabric如何形成这个日志系统可以学习学习,日志所打印的内容对阅读源码也是一种提示;

fabric的日志系统主要使用了第三方包 go-logging 。很少一部分使用了go语言标准库中的log。在此基础上fabric自己封装出来了flogging,这个f,代表fabric,意思是说这是fabric的logging。代码集中在fabric/common/flogging目录下,供项目全局使用。

go-logging简介

logging其实就是封装了各种打印格式,包括消息层级上的,如DEBU、消息、注意、警告、错误,包括消息颜色上的,如消息是正常的绿色、错误则是醒目的红色。

基本用法如下:

//创建一个名字为examplename的日志对象log
var log = logging.MustGetLogger("examplename")
//创建一个日志输出格式对象format,也就是用什么格式输出
var format = logging.MustStringFormatter(
    `%{color}%{time:15:04:05.000} %{shortfunc} ▶ %{level:.4s} %{id:03x}%{color:reset} %{message}`,
)
//创建一个日志输出对象backend,也就是日志要打印到哪儿,在此是标准错误输出
backend := logging.NewLogBackend(os.Stderr, "", 0)
//将输出格式与输出对象绑定
backendFormatter := logging.NewBackendFormatter(backend, format)
//将绑定了格式的输出对象设置为日志的输出对象
//这样log打印每一句话都会按格式输出到backendFormatter所代表的对象里,在此即是标准错误输出
logging.SetBackend(backendFormatter)
//log打印依据Info信息
log.Info("info")
//log打印一句Error信息
log.Error("err")

更多详细的用法,可在库中学习。

flogging目录

在common/flogging目录下有两个文件,grpclogger.go和logging.go。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值