可以通过以下网址下载相应包(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 用户级基本输出,比如成员信息,结构体值等