|
|
@@ -7,53 +7,63 @@ import (
|
|
|
"path/filepath"
|
|
|
"runtime/debug"
|
|
|
"strings"
|
|
|
+ "sync"
|
|
|
)
|
|
|
|
|
|
+var LoggerLever = zapcore.DebugLevel
|
|
|
+
|
|
|
var logger *zap.Logger
|
|
|
+var initLoggerOnce sync.Once
|
|
|
|
|
|
const logDir = "logs"
|
|
|
|
|
|
-func init() {
|
|
|
- if !pathExists(logDir) {
|
|
|
- err := os.MkdirAll(logDir, os.ModeDir|os.ModePerm)
|
|
|
+func lazyInitialize() {
|
|
|
+ initLoggerOnce.Do(func() {
|
|
|
+ if !pathExists(logDir) {
|
|
|
+ err := os.MkdirAll(logDir, os.ModeDir|os.ModePerm)
|
|
|
+ if err != nil {
|
|
|
+ panic(err)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ logFilePath := filepath.Join(logDir, "log")
|
|
|
+ file, err := os.Create(logFilePath)
|
|
|
if err != nil {
|
|
|
panic(err)
|
|
|
}
|
|
|
- }
|
|
|
-
|
|
|
- logFilePath := filepath.Join(logDir, "log")
|
|
|
- file, err := os.Create(logFilePath)
|
|
|
- if err != nil {
|
|
|
- panic(err)
|
|
|
- }
|
|
|
|
|
|
- developmentEncoderConfig := zap.NewDevelopmentEncoderConfig()
|
|
|
+ developmentEncoderConfig := zap.NewDevelopmentEncoderConfig()
|
|
|
|
|
|
- encoder := zapcore.NewConsoleEncoder(developmentEncoderConfig)
|
|
|
- core := zapcore.NewTee(
|
|
|
- zapcore.NewCore(encoder, zapcore.AddSync(file), zapcore.DebugLevel),
|
|
|
- zapcore.NewCore(encoder, zapcore.AddSync(os.Stdout), zapcore.DebugLevel),
|
|
|
- )
|
|
|
+ encoder := zapcore.NewConsoleEncoder(developmentEncoderConfig)
|
|
|
+ core := zapcore.NewTee(
|
|
|
+ zapcore.NewCore(encoder, zapcore.AddSync(file), LoggerLever),
|
|
|
+ zapcore.NewCore(encoder, zapcore.AddSync(os.Stdout), LoggerLever),
|
|
|
+ )
|
|
|
|
|
|
- logger = zap.New(core, zap.AddCaller())
|
|
|
+ logger = zap.New(core, zap.AddCaller())
|
|
|
+ })
|
|
|
}
|
|
|
|
|
|
func Info(serviceName string, funcName string, callName string, message string) {
|
|
|
+ lazyInitialize()
|
|
|
callerFields := getCallerInfoForLog(serviceName, funcName, callName)
|
|
|
logger.Info(message, callerFields...)
|
|
|
}
|
|
|
|
|
|
func Error(serviceName string, funcName string, callName string, message string) {
|
|
|
+ lazyInitialize()
|
|
|
callerFields := getCallerInfoForLog(serviceName, funcName, callName)
|
|
|
logger.Error(message+"\n"+string(debug.Stack()), callerFields...)
|
|
|
}
|
|
|
|
|
|
func Debug(serviceName string, funcName string, callName string, message string) {
|
|
|
+ lazyInitialize()
|
|
|
callerFields := getCallerInfoForLog(serviceName, funcName, callName)
|
|
|
logger.Debug(message, callerFields...)
|
|
|
}
|
|
|
|
|
|
func Warning(serviceName string, funcName string, callName string, message string) {
|
|
|
+ lazyInitialize()
|
|
|
callerFields := getCallerInfoForLog(serviceName, funcName, callName)
|
|
|
logger.Warn(message, callerFields...)
|
|
|
}
|