任何一个系统开发,都离不开完备的日志系统。go 日志不同其他语言,比如 java 由于 commons-logging 日志标准,和不同实现 如log4j,slf4j,logback,但都是统一调用标准接口;python 中标准logging 模块,功能强大,基本上满足各种需求。但是在golang 语言开发中,目前阅读了几个开源代码,都是自己实现了一套日志记录标准,并没有采用go 官方 log 模块。golang’s log 模块主要提供了3类接口。分别是 “Print、Panic、Fatal”,对每一类接口其提供了3中调用方式,分别是 “Xxxx 、 Xxxxln 、Xxxxf”,基本和fmt中的相关函数类似;但功能有限,很难比如按天,按照容量自动输出拆封生成新日志。如果自己开发一套日志,基本上要满足日志等级输出如DEBUG,INFO,WARN,ERROR/FATAL 、支持输出 console 或者滚动式文件、参数格式化输出、自定义格式化模板,当然如果支持更高级别如按照pakcage输出到不同文件,按照日志级别输出到不同地方那就更好了。