133 lines
2.6 KiB
Go
133 lines
2.6 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())
|
|
|
|
consoleEncoderConfig := zap.NewProductionEncoderConfig()
|
|
consoleEncoderConfig.EncodeTime = zapcore.RFC3339TimeEncoder
|
|
consoleEncoderConfig.EncodeLevel = zapcore.CapitalColorLevelEncoder
|
|
|
|
jsonEncoderConfig := zap.NewProductionEncoderConfig()
|
|
jsonEncoderConfig.EncodeTime = zapcore.ISO8601TimeEncoder
|
|
|
|
consoleEncoder := zapcore.NewConsoleEncoder(consoleEncoderConfig)
|
|
jsonEncoder := zapcore.NewJSONEncoder(jsonEncoderConfig)
|
|
core := zapcore.NewTee(
|
|
zapcore.NewCore(
|
|
consoleEncoder,
|
|
consoleWriterSync,
|
|
zapcore.DebugLevel,
|
|
),
|
|
zapcore.NewCore(
|
|
jsonEncoder,
|
|
rollingWriterSync,
|
|
zapcore.DebugLevel,
|
|
),
|
|
)
|
|
|
|
logger = zap.New(core).Named("App")
|
|
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(names ...string) *zap.Logger {
|
|
var l = logger
|
|
for _, name := range names {
|
|
l = l.Named(name)
|
|
}
|
|
return l
|
|
}
|
|
|
|
func NamedSugar(names ...string) *zap.SugaredLogger {
|
|
return Named(names...).Sugar()
|
|
}
|
|
|
|
func With(fields ...zap.Field) *zap.Logger {
|
|
return logger.With(fields...)
|
|
}
|
|
|
|
func WithSugar(fields ...zap.Field) *zap.SugaredLogger {
|
|
return logger.With(fields...).Sugar()
|
|
}
|