2
0
mirror of https://gitee.ltd/lxh/logger.git synced 2025-10-23 06:46:15 +08:00
Files
logger/console.go
2025-10-14 15:29:34 +08:00

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