124 lines
2.4 KiB
Go
124 lines
2.4 KiB
Go
package logger
|
|
|
|
import (
|
|
"os"
|
|
|
|
"go.uber.org/zap"
|
|
"go.uber.org/zap/zapcore"
|
|
)
|
|
|
|
var (
|
|
logger *zap.Logger
|
|
sugaredLogger *zap.SugaredLogger
|
|
)
|
|
|
|
func init() {
|
|
consoleWriterSync := zapcore.AddSync(os.Stderr)
|
|
rollingWriterSync := zapcore.AddSync(newRollingWriter())
|
|
encoderConfig := zap.NewProductionEncoderConfig()
|
|
encoderConfig.EncodeTime = zapcore.ISO8601TimeEncoder
|
|
encoderConfig.EncodeLevel = zapcore.CapitalLevelEncoder
|
|
consoleEncoder := zapcore.NewConsoleEncoder(encoderConfig)
|
|
jsonEncoder := zapcore.NewJSONEncoder(encoderConfig)
|
|
core := zapcore.NewTee(
|
|
zapcore.NewCore(
|
|
consoleEncoder,
|
|
consoleWriterSync,
|
|
zapcore.DebugLevel,
|
|
),
|
|
zapcore.NewCore(
|
|
jsonEncoder,
|
|
rollingWriterSync,
|
|
zapcore.DebugLevel,
|
|
),
|
|
)
|
|
|
|
logger = zap.New(core)
|
|
sugaredLogger = logger.Sugar()
|
|
logger.Info("Logger initialized.")
|
|
}
|
|
|
|
func GetLogger() *zap.Logger {
|
|
return logger
|
|
}
|
|
|
|
func Panic(msg string, fields ...zap.Field) {
|
|
logger.Panic(msg, fields...)
|
|
}
|
|
|
|
func Fatal(msg string, fields ...zap.Field) {
|
|
logger.Fatal(msg, fields...)
|
|
}
|
|
|
|
func Error(msg string, fields ...zap.Field) {
|
|
logger.Error(msg, fields...)
|
|
}
|
|
|
|
func Warn(msg string, fields ...zap.Field) {
|
|
logger.Warn(msg, fields...)
|
|
}
|
|
|
|
func Info(msg string, fields ...zap.Field) {
|
|
logger.Info(msg, fields...)
|
|
}
|
|
|
|
func Debug(msg string, fields ...zap.Field) {
|
|
logger.Debug(msg, fields...)
|
|
}
|
|
|
|
func Panicr(v ...interface{}) {
|
|
sugaredLogger.Panic(v...)
|
|
}
|
|
|
|
func Panicf(format string, v ...interface{}) {
|
|
sugaredLogger.Panicf(format, v...)
|
|
}
|
|
|
|
func Errorr(v ...interface{}) {
|
|
sugaredLogger.Panic(v...)
|
|
}
|
|
|
|
func Errorf(format string, v ...interface{}) {
|
|
sugaredLogger.Panicf(format, v...)
|
|
}
|
|
|
|
func Warnr(v ...interface{}) {
|
|
sugaredLogger.Warn(v...)
|
|
}
|
|
|
|
func Warnf(format string, v ...interface{}) {
|
|
sugaredLogger.Warnf(format, v...)
|
|
}
|
|
|
|
func Infor(v ...interface{}) {
|
|
sugaredLogger.Info(v...)
|
|
}
|
|
|
|
func Infof(format string, v ...interface{}) {
|
|
sugaredLogger.Infof(format, v...)
|
|
}
|
|
|
|
func Debugr(v ...interface{}) {
|
|
sugaredLogger.Debug(v...)
|
|
}
|
|
|
|
func Debugf(format string, v ...interface{}) {
|
|
sugaredLogger.Debugf(format, v...)
|
|
}
|
|
|
|
func Named(name string) *zap.Logger {
|
|
return logger.Named(name)
|
|
}
|
|
|
|
func NamedSugar(name string) *zap.SugaredLogger {
|
|
return logger.Named(name).Sugar()
|
|
}
|
|
|
|
func With(fields ...zap.Field) *zap.Logger {
|
|
return logger.With(fields...)
|
|
}
|
|
|
|
func WithSugar(fields ...zap.Field) *zap.SugaredLogger {
|
|
return logger.With(fields...).Sugar()
|
|
}
|