mirror of
https://gitee.ltd/lxh/logger.git
synced 2025-10-23 14:56:16 +08:00
50 lines
1.1 KiB
Go
50 lines
1.1 KiB
Go
package zap_logger
|
|
|
|
import (
|
|
"os"
|
|
"strings"
|
|
"time"
|
|
|
|
customencoder "gitee.ltd/lxh/logger/v2/encoder"
|
|
"go.uber.org/zap"
|
|
"go.uber.org/zap/zapcore"
|
|
)
|
|
|
|
type consoleLogger struct {
|
|
Encoder string
|
|
Level string
|
|
Color bool
|
|
}
|
|
|
|
func newConsoleLogger(consoleConf *Console) *consoleLogger {
|
|
return &consoleLogger{
|
|
Encoder: consoleConf.Encoder,
|
|
Level: consoleConf.Level,
|
|
Color: consoleConf.Color,
|
|
}
|
|
}
|
|
|
|
func (c *consoleLogger) Init() zapcore.Core {
|
|
encoderConfig := zap.NewProductionEncoderConfig()
|
|
encoderConfig.TimeKey = "time"
|
|
encoderConfig.EncodeTime = func(time time.Time, encoder zapcore.PrimitiveArrayEncoder) {
|
|
encoder.AppendString(time.Format("2006-01-02 15:04:05.000"))
|
|
}
|
|
|
|
writer := zapcore.AddSync(os.Stdout)
|
|
var encoder zapcore.Encoder
|
|
switch c.Encoder {
|
|
case "json":
|
|
encoder = customencoder.NewJsonEncoder(encoderConfig)
|
|
case "console":
|
|
if c.Color {
|
|
encoderConfig.EncodeLevel = zapcore.CapitalColorLevelEncoder
|
|
}
|
|
encoder = zapcore.NewConsoleEncoder(encoderConfig)
|
|
}
|
|
|
|
level, _ := zapcore.ParseLevel(strings.ToLower(c.Level))
|
|
|
|
return zapcore.NewCore(encoder, writer, level)
|
|
}
|