package main

import (
	"go.uber.org/zap"
	"go.uber.org/zap/zapcore"
)

func main() {
	// 1. 使用 Sampling 采样（减少高频日志）
	config := zap.NewProductionConfig()
	config.Sampling = &zap.SamplingConfig{
		Initial:    100, // 前 100 条日志全部记录
		Thereafter: 100, // 之后每 100 条记录 1 条
	}

	logger, _ := config.Build()
	defer logger.Sync()

	// 2. 预分配字段（避免重复创建）
	baseFields := []zapcore.Field{
		zap.String("service", "user-service"),
		zap.String("version", "1.0.0"),
	}

	// 3. 使用 With 创建子 Logger
	userLogger := logger.With(baseFields...)

	// 4. 高效记录日志
	for i := 0; i < 1000; i++ {
		userLogger.Info("Processing request",
			zap.Int("request_id", i),
		)
	}
}
