Skip to content

Commit c99a1d4

Browse files
authored
fix: fix logger data race (#71)
1 parent b581659 commit c99a1d4

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

utils/logger/log.go

+9-4
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66
"path"
77
"path/filepath"
88
"runtime"
9+
"sync"
910

1011
"github.com/samber/lo"
1112
"go.uber.org/zap"
@@ -14,6 +15,7 @@ import (
1415
)
1516

1617
var loggers *zap.Logger
18+
var once sync.Once
1719

1820
func getFileLogWriter(logPath string, logFileName string, logFileExt string) (writeSyncer zapcore.WriteSyncer) {
1921
// 使用 lumberjack 实现 log rotate
@@ -37,14 +39,17 @@ func LogInitWithWriterSyncers(syncers ...zapcore.WriteSyncer) {
3739
func(syncer zapcore.WriteSyncer, index int) zapcore.Core {
3840
return zapcore.NewCore(encoder, syncer, zapcore.InfoLevel)
3941
})...,
40-
))
42+
),
43+
)
4144
}
4245

4346
// for unit tests
4447
func LogInitConsoleOnly() {
45-
LogInitWithWriterSyncers(
46-
zapcore.AddSync(os.Stdout),
47-
)
48+
once.Do(func() {
49+
LogInitWithWriterSyncers(
50+
zapcore.AddSync(os.Stdout),
51+
)
52+
})
4853
}
4954

5055
func LogInit(logPath string, logFileName string, logFileExt string) {

0 commit comments

Comments
 (0)