MCPcopy Create free account
hub / github.com/GoSimplicity/LinkMe / InitLogger

Function InitLogger

ioc/logger.go:14–60  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

12)
13
14func InitLogger() *zap.Logger {
15 // 从配置获取日志目录
16 logDir := viper.GetString("log.dir")
17 if logDir != "" {
18 if err := os.MkdirAll(logDir, 0o755); err != nil {
19 panic(err)
20 }
21 }
22 logFile := filepath.Join(logDir, "linkme-"+time.Now().Format("2006-01-02")+"-json.log")
23
24 // 日志轮转配置
25 fileWriter := &lumberjack.Logger{
26 Filename: logFile,
27 MaxSize: 10, // 每个日志文件最大10MB
28 MaxBackups: 5, // 保留最近5个日志文件
29 MaxAge: 30, // 日志文件最多保留30天
30 Compress: true, // 压缩旧日志
31 LocalTime: true, // 使用本地时间
32 }
33
34 // 多路输出配置
35 writeSyncer := zapcore.NewMultiWriteSyncer(
36 zapcore.AddSync(os.Stdout),
37 zapcore.AddSync(fileWriter),
38 )
39
40 // 编码器配置
41 encoderConfig := zap.NewProductionEncoderConfig()
42 encoderConfig.TimeKey = "time"
43 encoderConfig.EncodeTime = zapcore.ISO8601TimeEncoder
44 encoderConfig.EncodeLevel = zapcore.LowercaseLevelEncoder
45 encoderConfig.EncodeCaller = zapcore.ShortCallerEncoder
46
47 // 创建核心配置
48 core := zapcore.NewCore(
49 zapcore.NewJSONEncoder(encoderConfig),
50 writeSyncer,
51 zap.NewAtomicLevelAt(zapcore.InfoLevel),
52 )
53
54 // 创建并返回logger
55 return zap.New(
56 core,
57 zap.AddCaller(),
58 zap.AddStacktrace(zapcore.ErrorLevel),
59 )
60}

Callers 2

TestSendCodeFunction · 0.92
InitWebServerFunction · 0.85

Calls

no outgoing calls

Tested by 1

TestSendCodeFunction · 0.74