- 实现用户注册、登录、JWT令牌认证功能 - 集成Gin、GORM、Viper、Zap等框架 - 添加密码加密、数据库操作、中间件等完整功能 - 配置多环境支持、日志轮转、CORS处理 - 创建完整的项目结构和配置文件体系
40 lines
1.0 KiB
Go
40 lines
1.0 KiB
Go
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")
|
||
}
|