This commit is contained in:
kzkzzzz
2025-03-22 01:24:57 +08:00
parent 197476e805
commit 7e0bf82418
22 changed files with 2291 additions and 919 deletions

View File

@@ -3,13 +3,18 @@ package mylog
import (
"go.uber.org/zap"
"go.uber.org/zap/zapcore"
"gopkg.in/natefinch/lumberjack.v2"
"io"
"os"
"path/filepath"
"strings"
)
type ILogger interface {
Debugf(format string, v ...any)
Infof(format string, v ...any)
Warnf(format string, v ...any)
Errorf(format string, v ...any)
}
const (
DebugLevel = "DEBUG"
InfoLevel = "INFO"
@@ -36,13 +41,7 @@ var (
ConsoleWriter: os.Stdout,
}
DefaultLogFile = &LogFile{
LogFilePath: "logs",
MaxSize: 200,
MaxAge: 0,
MaxBackups: 0,
}
globalLog = NewLogger("debug", DefaultConfig)
globalLog = NewLogger(DefaultConfig)
)
type (
@@ -71,7 +70,7 @@ func SetLogLevel(level string) {
}
func Init() {
globalLog = NewLogger("app", &Config{
globalLog = NewLogger(&Config{
Level: defaultLogLevel,
NeedLogFile: false,
ConsoleWriter: os.Stdout,
@@ -79,11 +78,11 @@ func Init() {
}
// InitWithConfig 覆盖默认日志
func InitWithConfig(serverName string, config *Config) {
globalLog = NewLogger(serverName, config)
func InitWithConfig(config *Config) {
globalLog = NewLogger(config)
}
func NewLogger(serverName string, config *Config) *ZapLog {
func NewLogger(config *Config) *ZapLog {
if config == nil {
config = DefaultConfig
}
@@ -96,29 +95,15 @@ func NewLogger(serverName string, config *Config) *ZapLog {
cores := make([]zapcore.Core, 0)
// 使用控制台输出
if config.ConsoleWriter != nil {
cfg := zap.NewProductionEncoderConfig()
cfg.EncodeLevel = zapcore.CapitalColorLevelEncoder
cfg.ConsoleSeparator = " | "
// 指定日志时间格式
cfg.EncodeTime = zapcore.TimeEncoderOfLayout("2006-01-02 15:04:05.000")
cfg.EncodeCaller = zapcore.ShortCallerEncoder
encoder := zapcore.NewConsoleEncoder(cfg)
core := zapcore.NewCore(encoder, zapcore.AddSync(config.ConsoleWriter), level)
cores = append(cores, core)
}
if config.NeedLogFile {
cfg := zap.NewProductionEncoderConfig()
cfg.EncodeLevel = zapcore.CapitalLevelEncoder
cfg.ConsoleSeparator = " | "
// 指定日志时间格式
cfg.EncodeTime = zapcore.TimeEncoderOfLayout("2006-01-02 15:04:05.000")
cfg.EncodeCaller = zapcore.ShortCallerEncoder
encoder := zapcore.NewConsoleEncoder(cfg)
core := zapcore.NewCore(encoder, zapcore.AddSync(getRollingFileWriter(serverName, config)), level)
cores = append(cores, core)
}
cfg := zap.NewProductionEncoderConfig()
cfg.EncodeLevel = zapcore.CapitalColorLevelEncoder
cfg.ConsoleSeparator = " | "
// 指定日志时间格式
cfg.EncodeTime = zapcore.TimeEncoderOfLayout("2006-01-02 15:04:05.000")
cfg.EncodeCaller = zapcore.ShortCallerEncoder
encoder := zapcore.NewConsoleEncoder(cfg)
core := zapcore.NewCore(encoder, zapcore.AddSync(config.ConsoleWriter), level)
cores = append(cores, core)
opts := make([]zap.Option, 0)
if config.ZapOpt != nil {
@@ -134,21 +119,6 @@ func NewLogger(serverName string, config *Config) *ZapLog {
}
}
func getRollingFileWriter(serverName string, config *Config) *lumberjack.Logger {
if config.LogFile == nil {
config.LogFile = DefaultLogFile
}
return &lumberjack.Logger{
Filename: filepath.Join(config.LogFile.LogFilePath, serverName+".log"),
MaxSize: config.LogFile.MaxSize,
MaxAge: config.LogFile.MaxAge,
MaxBackups: config.LogFile.MaxBackups,
LocalTime: true,
Compress: false,
}
}
func (z *ZapLog) Debug(args ...interface{}) {
z.sugarLog.Debug(args...)
}