electricity_bill_calc_service/logger/logger.go
2022-09-08 16:10:08 +08:00

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()
}