一 写作背景
最近研究源码,这次研究的源码包是日志包:log
包;需要说明的是,这个包是基于golang1.18
版本的(低于这个版本的,源代码略有区别,可以忽略不计);
二 代码说明
2.1 log
包的作用
log
包,它实现简单的日志服务;通过调用log包提供的函数,可以实现简单的日志打印功能。
2.2 代码结构
log
包里面,提供了3个系列的函数,分别print
系列、panic
系列、fatal
系列;说明如下:
沿着这3个函数往下分析,可以看到,底层调用了同一个函数Output()
;所以这篇文章,我们主要分析这个函数。
三 代码详解
3.1 log的结构体
在log
包里面,定义了一个日志的结构体: