package main import ( "os" "go.uber.org/zap" "go.uber.org/zap/zapcore" ) func main() { // 1. 配置 Encoder encoderConfig := zap.NewProductionEncoderConfig() encoderConfig.EncodeTime = zapcore.ISO8601TimeEncoder encoderConfig.EncodeLevel = zapcore.CapitalColorLevelEncoder // 带颜色的级别 // 2. 控制台输出(console 格式) consoleEncoder := zapcore.NewConsoleEncoder(encoderConfig) consoleOutput := zapcore.AddSync(os.Stdout) // 3. 文件输出(json 格式) fileEncoder := zapcore.NewJSONEncoder(encoderConfig) file, _ := os.OpenFile("app.log", os.O_CREATE|os.O_APPEND|os.O_WRONLY, 0644) fileOutput := zapcore.AddSync(file) // 4. 创建多输出 Core core := zapcore.NewTee( zapcore.NewCore(consoleEncoder, consoleOutput, zap.InfoLevel), zapcore.NewCore(fileEncoder, fileOutput, zap.InfoLevel), ) // 5. 创建 Logger logger := zap.New(core, zap.AddCaller()) defer logger.Sync() // 6. 使用 Logger logger.Info("Application started") logger.Warn("This is a warning") logger.Error("This is an error") }