【golang】zap日志库使用

在这里插入图片描述

app.log

在这里插入图片描述

error.log

在这里插入图片描述

package main

import (
	"time"
	"go.uber.org/zap"
	"go.uber.org/zap/zapcore"
	"gopkg.in/natefinch/lumberjack.v2"
)


func main() {

	var logger *zap.Logger

	//func NewCore(enc Encoder, ws WriteSyncer, enab LevelEnabler) Core
	//func New(core zapcore.Core, options ...Option) *Logger

	encoderConfig := zap.NewProductionEncoderConfig()
	encoderConfig.EncodeTime = func(time time.Time, encoder zapcore.PrimitiveArrayEncoder) {
		encoder.AppendString("[" + time.Format("2006-01-02 15:04:05.000") + "]")
	}
	encoderConfig.EncodeLevel = zapcore.CapitalLevelEncoder
	encoder := zapcore.NewConsoleEncoder(encoderConfig)

	warnLevel := zap.LevelEnablerFunc(func(lvl zapcore.Level) bool {
		return lvl <= zapcore.WarnLevel
	})
	errorLevel := zap.LevelEnablerFunc(func(lvl zapcore.Level) bool {
		return lvl >= zapcore.ErrorLevel
	})

	errorLogger := &lumberjack.Logger {
		Filename: 		"D:\\logs\\error.log",
		MaxSize: 		1,						
		MaxBackups:		1,						//保留旧文件的最大个数
		MaxAge:			1,						//保留旧文件的最大天数
		Compress:		true,					//是否压缩/归档旧文件
	}
	warnLogger := &lumberjack.Logger {
		Filename: 		"D:\\logs\\app.log",	
		MaxSize: 		1,						
		MaxBackups:		1,
		MaxAge:			1,
		Compress:		true,	
	}
	
	core := zapcore.NewTee(
		zapcore.NewCore(encoder, zapcore.AddSync(warnLogger), warnLevel),
		zapcore.NewCore(encoder, zapcore.AddSync(errorLogger), errorLevel),
	)

	logger = zap.New(core, zap.AddCaller())		

	logger.Debug("Debug")
	logger.Info("Info")
	logger.Warn("Warn")
	logger.Error("Error")
	logger.Panic("Panic")
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值