Go日志库——zap的配置笔记(zap.Logger、zap.SugaredLogger)

2022/1/10 23:35:14

本文主要是介绍Go日志库——zap的配置笔记(zap.Logger、zap.SugaredLogger),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

代码

package main

import (
	// "github.com/natefinch/lumberjack"
	"os"

	"go.uber.org/zap"
	"go.uber.org/zap/zapcore"

	_ "github.com/go-sql-driver/mysql"
	"github.com/jmoiron/sqlx"
)

var log *zap.Logger
var logs *zap.SugaredLogger

var db *sqlx.DB

func main() {
	InitLogger()
	defer log.Sync()

}

func InitLogger() {
	// 1. writeSyncer循环文件
	// file, _ := os.Create("./test.log")
	// writeSyncer := zapcore.AddSync(file)
	// lumberJackLogger := &lumberjack.Logger{
	// 	Filename:   "./test.log",
	// 	LocalTime:  true,
	// 	MaxSize:    1, //M
	// 	MaxBackups: 5, //个
	// 	MaxAge:     0, //天
	// 	Compress:   false,
	// }
	// writeSyncer := zapcore.AddSync(lumberJackLogger)

	// 2. console 打印 调试
	writeSyncer := zapcore.AddSync(os.Stdout)

	// 3. encoder JSON格式
	// encoder := zapcore.NewJSONEncoder(zap.NewProductionEncoderConfig())

	// 4. encoder Console格式
	// encoder := zapcore.NewConsoleEncoder(zap.NewProductionEncoderConfig())

	// 5. 自定义格式
	encoderConfig := zap.NewProductionEncoderConfig()
	encoderConfig.EncodeTime = zapcore.ISO8601TimeEncoder
	encoderConfig.EncodeLevel = zapcore.CapitalLevelEncoder
	encoder := zapcore.NewJSONEncoder(encoderConfig)

	// 6.core
	core := zapcore.NewCore(encoder, writeSyncer, zapcore.DebugLevel)
	// 7.log
	log = zap.New(core)
	logs = log.Sugar()
}



这篇关于Go日志库——zap的配置笔记(zap.Logger、zap.SugaredLogger)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程