可以通过以下网址下载相应包(go版本得再1.9以上)go get github.com/uber-go/zap,可能还会需要atomic包和multierr包,go get github.com/uber-go/atomic和go get github.com/uber-go/multierr。

     rawJSON := []byte(`{
                "level": "info",
                "outputPaths": ["stdout"],
                "errorOutputPaths": ["stderr"],
                "encoding": "json",
                "encoderConfig": {
                    "messageKey": "message",
                    "levelKey": "level",
                    "levelEncoder": "lowercase"
                }
            }`)
    
    var cfg zap.Config

//将json封装到cfg中
if err := json.Unmarshal(rawJSON, &cfg); err != nil {
    panic(err)
}
//从Config和选项构建一个记录器。
logger, err := cfg.Build()
//将记录器起名为 "日志包"
new_logger := logger.Named("日志包")
if err != nil {
    panic(err)
}
//同步调用基础Core的同步方法,刷新所有缓冲日志条目
defer new_logger.Sync()

//INFO在InfoLevel记录一条消息
new_logger.Info("info logging enabled")


输出:
   {"level":"info","logger":"日志包","message":"info logging enabled"}
(更多请参考官方文档:https://godoc.org/go.uber.org/zap)

参考:
日志输出等级共8种

  等级    配置    释义    
  0            EMER    系统级紧急,比如磁盘出错,内存异常,网络不可用等    
  1            ALRT    系统级警告,比如数据库访问异常,配置文件出错等    
  2            CRIT    系统级危险,比如权限出错,访问异常等    
  3            EROR    用户级错误    
  4            WARN    用户级警告    
  5            INFO    用户级重要    
  6            DEBG    用户级调试    
  7            TRAC    用户级基本输出,比如成员信息,结构体值等    
Last modification:May 27th, 2019 at 05:43 pm
如果觉得我的文章对你有用,请随意赞赏