Go自带的log库

优点: 使用简单,可以设置任何io.Writer作为日志输出并向其发送日志。
缺点:对于基本日志,仅支持支持Print,不支持INFO/DEBUG等多个级别,对于错误日志只支持 FATAL和PANIC,其中Fatal通过调用os.Exit(1)结束程序,Panic在写入日志后抛出一个panic,但缺少Error日志级别,可以在不抛出panic或者退出程序的情况下记录错误。

Fatal相当于直接退出程序,defer不会执行,而Panic将结果返回给调用者,defer执行,再递归返回给调用者,比较类似于异常处理

Uber-go Zap库

安装go get -u go.uber.org/zap
Zap提供了两种类型的日志记录器—Sugared Logger和Logger。
在性能很好但不是很关键的上下文中,使用SugaredLogger。它比其他结构化日志记录包快4-10倍,并且支持结构化和printf风格的日志记录。
在每一微秒和每一次内存分配都很重要的上下文中,使用Logger。它甚至比SugaredLogger更快,内存分配次数也更少,但它只支持强类型的结构化日志记录。