|
|
@@ -7,6 +7,7 @@ import (
|
|
|
"gopkg.in/natefinch/lumberjack.v2"
|
|
|
"os"
|
|
|
"path/filepath"
|
|
|
+ "sync"
|
|
|
)
|
|
|
|
|
|
const (
|
|
|
@@ -34,32 +35,28 @@ func chooseLoggerLever() zapcore.Level {
|
|
|
}
|
|
|
|
|
|
var logger *zap.Logger
|
|
|
+var initLoggerOnce sync.Once
|
|
|
|
|
|
const logDir = "logs"
|
|
|
|
|
|
-func init() {
|
|
|
- if !pathExists(logDir) {
|
|
|
- err := os.MkdirAll(logDir, os.ModeDir|os.ModePerm)
|
|
|
- if err != nil {
|
|
|
- panic(err)
|
|
|
+func lazyInitialize() {
|
|
|
+ initLoggerOnce.Do(func() {
|
|
|
+ logFilePath := filepath.Join(logDir, "log")
|
|
|
+ lumberJackLogger := &lumberjack.Logger{
|
|
|
+ Filename: logFilePath,
|
|
|
+ MaxAge: 10,
|
|
|
}
|
|
|
- }
|
|
|
-
|
|
|
- logFilePath := filepath.Join(logDir, "log")
|
|
|
- lumberJackLogger := &lumberjack.Logger{
|
|
|
- Filename: logFilePath,
|
|
|
- MaxAge: 10,
|
|
|
- }
|
|
|
|
|
|
- developmentEncoderConfig := zap.NewDevelopmentEncoderConfig()
|
|
|
+ developmentEncoderConfig := zap.NewDevelopmentEncoderConfig()
|
|
|
|
|
|
- encoder := zapcore.NewConsoleEncoder(developmentEncoderConfig)
|
|
|
- core := zapcore.NewTee(
|
|
|
- zapcore.NewCore(encoder, zapcore.AddSync(lumberJackLogger), chooseLoggerLever()),
|
|
|
- zapcore.NewCore(encoder, zapcore.AddSync(os.Stdout), chooseLoggerLever()),
|
|
|
- )
|
|
|
+ encoder := zapcore.NewConsoleEncoder(developmentEncoderConfig)
|
|
|
+ core := zapcore.NewTee(
|
|
|
+ zapcore.NewCore(encoder, zapcore.AddSync(lumberJackLogger), chooseLoggerLever()),
|
|
|
+ zapcore.NewCore(encoder, zapcore.AddSync(os.Stdout), chooseLoggerLever()),
|
|
|
+ )
|
|
|
|
|
|
- logger = zap.New(core, zap.AddCaller(), zap.AddCallerSkip(1))
|
|
|
+ logger = zap.New(core, zap.AddCaller(), zap.AddCallerSkip(1))
|
|
|
+ })
|
|
|
}
|
|
|
|
|
|
func GetLogger() *zap.Logger {
|
|
|
@@ -67,19 +64,23 @@ func GetLogger() *zap.Logger {
|
|
|
}
|
|
|
|
|
|
func Info(message string) {
|
|
|
+ lazyInitialize()
|
|
|
logger.Info(message)
|
|
|
}
|
|
|
|
|
|
func Error(err error) {
|
|
|
+ lazyInitialize()
|
|
|
message := fmt.Sprintf("\n%+v\n", err)
|
|
|
logger.Error(message)
|
|
|
}
|
|
|
|
|
|
func Debug(message string) {
|
|
|
+ lazyInitialize()
|
|
|
logger.Debug(message)
|
|
|
}
|
|
|
|
|
|
func Warn(message string) {
|
|
|
+ lazyInitialize()
|
|
|
logger.Warn(message)
|
|
|
}
|
|
|
|