// +build ignore // 这是一个独立的测试程序,用于测试日志输出 package main import ( "fmt" "os" "time" "github.com/topfans/backend/pkg/logger" "go.uber.org/zap" ) func main() { fmt.Println("=== 测试Logger初始化 ===") // 测试开发环境 fmt.Println("\n1. 测试开发环境(彩色控制台输出):") err := logger.Init(logger.Config{ ServiceName: "user-service", Environment: "development", LogLevel: "debug", }) if err != nil { panic(fmt.Sprintf("Failed to initialize logger: %v", err)) } defer logger.Sync() // 测试各种日志级别 logger.Sugar.Debug("This is a debug message") logger.Sugar.Info("This is an info message") logger.Sugar.Warn("This is a warn message") logger.Sugar.Error("This is an error message") // 测试结构化日志 logger.Logger.Info("User registered", zap.String("mobile", "13800138000"), zap.Int64("user_id", 123), zap.Int64("star_id", 456), ) // 测试带格式的日志 logger.Sugar.Infof("Processing request: mobile=%s, user_id=%d", "13800138000", 123) // 测试错误日志 logger.Logger.Error("Failed to create user", zap.String("mobile", "13800138000"), zap.Error(fmt.Errorf("user already exists")), ) fmt.Println("\n2. 测试生产环境(JSON格式 + 文件输出):") // 重新初始化生产环境配置 logger.Sync() // 先关闭之前的logger testLogPath := "test-logs" err = logger.Init(logger.Config{ ServiceName: "user-service", Environment: "production", LogLevel: "info", LogPath: testLogPath, }) if err != nil { panic(fmt.Sprintf("Failed to initialize logger: %v", err)) } defer logger.Sync() defer os.RemoveAll(testLogPath) // 清理测试日志文件 logger.Logger.Info("User login successful", zap.Int64("user_id", 123), zap.Int64("star_id", 456), zap.String("mobile", "13800138000"), ) logger.Logger.Error("Database connection failed", zap.String("error", "connection timeout"), zap.String("host", "localhost"), zap.Int("port", 5432), ) // 等待一下,确保日志写入 time.Sleep(100 * time.Millisecond) fmt.Println("\n✅ 日志测试完成!") fmt.Printf("📁 生产环境日志文件位置: %s/user-service.log\n", testLogPath) }