update
This commit is contained in:
72
mylog/log.go
72
mylog/log.go
@@ -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...)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user