diff --git a/go.mod b/go.mod index fda23b6e..cafe305b 100644 --- a/go.mod +++ b/go.mod @@ -4,15 +4,12 @@ go 1.20 require ( github.com/iancoleman/strcase v0.3.0 - github.com/lestrrat-go/file-rotatelogs v2.4.0+incompatible github.com/pkg/errors v0.9.1 github.com/pmezard/go-difflib v1.0.0 github.com/stretchr/testify v1.10.0 - github.com/tableauio/tableau v0.13.0 - go.uber.org/zap v1.24.0 + github.com/tableauio/tableau v0.13.1-0.20250523120611-7f880d7ea583 golang.org/x/exp v0.0.0-20230418202329-0354be287a23 google.golang.org/protobuf v1.34.2 - gopkg.in/natefinch/lumberjack.v2 v2.2.1 ) require ( @@ -25,9 +22,7 @@ require ( github.com/emirpasic/gods v1.18.1 // indirect github.com/golang/protobuf v1.5.4 // indirect github.com/jhump/protoreflect v1.16.0 // indirect - github.com/jonboulle/clockwork v0.2.2 // indirect github.com/klauspost/cpuid/v2 v2.0.9 // indirect - github.com/lestrrat-go/strftime v1.0.5 // indirect github.com/mitchellh/go-wordwrap v1.0.1 // indirect github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect github.com/protocolbuffers/txtpbfmt v0.0.0-20240820135758-21b1d9897dc7 // indirect @@ -40,11 +35,13 @@ require ( github.com/xuri/nfp v0.0.0-20220409054826-5e722a1d9e22 // indirect go.uber.org/atomic v1.7.0 // indirect go.uber.org/multierr v1.8.0 // indirect + go.uber.org/zap v1.24.0 // indirect golang.org/x/arch v0.14.0 // indirect golang.org/x/crypto v0.21.0 // indirect golang.org/x/net v0.22.0 // indirect golang.org/x/sync v0.6.0 // indirect golang.org/x/text v0.14.0 // indirect google.golang.org/genproto v0.0.0-20211208223120-3a66f561d7aa // indirect + gopkg.in/natefinch/lumberjack.v2 v2.2.1 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index af3c6908..e7562cbe 100644 --- a/go.sum +++ b/go.sum @@ -65,23 +65,14 @@ github.com/iancoleman/strcase v0.3.0 h1:nTXanmYxhfFAMjZL34Ov6gkzEsSJZ5DbhxWjvSAS github.com/iancoleman/strcase v0.3.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= github.com/jhump/protoreflect v1.16.0 h1:54fZg+49widqXYQ0b+usAFHbMkBGR4PpXrsHc8+TBDg= github.com/jhump/protoreflect v1.16.0/go.mod h1:oYPd7nPvcBw/5wlDfm/AVmU9zH9BgqGCI469pGxfj/8= -github.com/jonboulle/clockwork v0.2.2 h1:UOGuzwb1PwsrDAObMuhUnj0p5ULPj8V/xJ7Kx9qUBdQ= -github.com/jonboulle/clockwork v0.2.2/go.mod h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUBGnn1kMkgxc8= github.com/klauspost/cpuid/v2 v2.0.9 h1:lgaqFMSdTdQYdZ04uHyN2d/eKdOMyi2YLSvlQIBFYa4= github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= github.com/knz/go-libedit v1.10.1/go.mod h1:MZTVkCWyz0oBc7JOWP3wNAzd002ZbM/5hgShxwh4x8M= github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= -github.com/lestrrat-go/envload v0.0.0-20180220234015-a3eb8ddeffcc h1:RKf14vYWi2ttpEmkA4aQ3j4u9dStX2t4M8UM6qqNsG8= -github.com/lestrrat-go/envload v0.0.0-20180220234015-a3eb8ddeffcc/go.mod h1:kopuH9ugFRkIXf3YoqHKyrJ9YfUFsckUU9S7B+XP+is= -github.com/lestrrat-go/file-rotatelogs v2.4.0+incompatible h1:Y6sqxHMyB1D2YSzWkLibYKgg+SwmyFU9dF2hn6MdTj4= -github.com/lestrrat-go/file-rotatelogs v2.4.0+incompatible/go.mod h1:ZQnN8lSECaebrkQytbHj4xNgtg8CR7RYXnPok8e0EHA= -github.com/lestrrat-go/strftime v1.0.5 h1:A7H3tT8DhTz8u65w+JRpiBxM4dINQhUXAZnhBa2xeOE= -github.com/lestrrat-go/strftime v1.0.5/go.mod h1:E1nN3pCbtMSu1yjSVeyuRFVm/U0xoR76fd03sz+Qz4g= github.com/mitchellh/go-wordwrap v1.0.1 h1:TLuKupo69TCn6TQSyGxwI1EblZZEsQ0vMlAFQflz0v0= github.com/mitchellh/go-wordwrap v1.0.1/go.mod h1:R62XHJLzvMFRBbcrT7m7WgmE1eOyTSsCt+hzestvNj0= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= -github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= @@ -109,8 +100,8 @@ github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOf github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subchen/go-xmldom v1.1.2 h1:7evI2YqfYYOnuj+PBwyaOZZYjl3iWq35P6KfBUw9jeU= github.com/subchen/go-xmldom v1.1.2/go.mod h1:6Pg/HuX5/T4Jlj0IPJF1sRxKVoI/rrKP6LIMge9d5/8= -github.com/tableauio/tableau v0.13.0 h1:IJje1CyCUtL6+GSF613ibmV+Aeh78j3mvDdx8rbAjI0= -github.com/tableauio/tableau v0.13.0/go.mod h1:+gQn2d7unppJV5lepcSFdZyPmMWeWSzaf2bMd6SHT6U= +github.com/tableauio/tableau v0.13.1-0.20250523120611-7f880d7ea583 h1:APdNA+IX82tkHHppNW19Lwczb9uPD2oOetslXM+2t84= +github.com/tableauio/tableau v0.13.1-0.20250523120611-7f880d7ea583/go.mod h1:+gQn2d7unppJV5lepcSFdZyPmMWeWSzaf2bMd6SHT6U= github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= github.com/xuri/efp v0.0.0-20220603152613-6918739fd470 h1:6932x8ltq1w4utjmfMPVj09jdMlkY0aiA6+Skbtl3/c= diff --git a/pkg/atom/log.go b/pkg/atom/log.go deleted file mode 100644 index 5849ee69..00000000 --- a/pkg/atom/log.go +++ /dev/null @@ -1,19 +0,0 @@ -package atom - -import ( - "go.uber.org/zap" - "go.uber.org/zap/zapcore" -) -var levelMap = map[string]zapcore.Level{ - "debug": zapcore.DebugLevel, - "info": zapcore.InfoLevel, - "warn": zapcore.WarnLevel, - "error": zapcore.ErrorLevel, -} - -var Log *zap.SugaredLogger -var zaplogger *zap.Logger - -func GetZapLogger() *zap.Logger { - return zaplogger -} \ No newline at end of file diff --git a/pkg/atom/zap_linux.go b/pkg/atom/zap_linux.go deleted file mode 100644 index 913e9ca1..00000000 --- a/pkg/atom/zap_linux.go +++ /dev/null @@ -1,69 +0,0 @@ -//go:build linux -// +build linux - -package atom - -import ( - "log" - "time" - - // rotatelogs "github.com/lestrrat-go/file-rotatelogs" - rotatelogs "github.com/lestrrat-go/file-rotatelogs" - "github.com/pkg/errors" - "go.uber.org/zap" - "go.uber.org/zap/zapcore" -) - -func InitZap(level string, dir string) error { - zapLevel, ok := levelMap[level] - if !ok { - return errors.Errorf("illegal log level: %s", level) - } - writeSyncer := getWriteSyncer(dir) - encoder := getEncoder() - core := zapcore.NewCore(encoder, writeSyncer, zapLevel) - - zaplogger = zap.New(core, zap.AddCaller()) - Log = zaplogger.Sugar() - - Log.Infow("sugar log test1", - "url", "http://example.com", - "attempt", 3, - "backoff", time.Second, - ) - - Log.Infof("sugar log test2: %s", "http://example.com") - - return nil -} - -func getEncoder() zapcore.Encoder { - encoderConfig := zap.NewProductionEncoderConfig() - encoderConfig.FunctionKey = "func" - encoderConfig.EncodeTime = zapcore.ISO8601TimeEncoder - encoderConfig.EncodeLevel = zapcore.CapitalLevelEncoder - encoderConfig.ConsoleSeparator = "|" - return zapcore.NewConsoleEncoder(encoderConfig) -} - -func getWriteSyncer(dir string) zapcore.WriteSyncer { - // return zapcore.AddSync(&lumberjack.Logger{ - // Filename: dir + "/log" + time.Now().Format("20060102"),, - // MaxSize: 100, // megabytes - // MaxBackups: 30, - // MaxAge: 14, //days - // Compress: false, // disabled by default - // }) - - hook, err := rotatelogs.New( - dir+"/log"+".%Y%m%d", - rotatelogs.WithLinkName(dir+"/log"), - rotatelogs.WithMaxAge(time.Hour*24*7), - rotatelogs.WithRotationTime(time.Hour*24), - ) - - if err != nil { - log.Printf("failed to create rotatelogs: %s", err) - } - return zapcore.AddSync(hook) -} diff --git a/pkg/atom/zap_windows.go b/pkg/atom/zap_windows.go deleted file mode 100644 index bbe2196e..00000000 --- a/pkg/atom/zap_windows.go +++ /dev/null @@ -1,94 +0,0 @@ -//go:build windows -// +build windows - -package atom - -import ( - "errors" - "fmt" - "log" - "net/url" - "time" - - "go.uber.org/zap" - "go.uber.org/zap/zapcore" - "gopkg.in/natefinch/lumberjack.v2" -) - -func InitZap(level string, dir string) error { - logFile := "log.log" - zapLevel, ok := levelMap[level] - if !ok { - log.Fatalf("illegal log level: %s", level) - return errors.New("illegal log level") - } - zap.RegisterSink("lumberjack", func(*url.URL) (zap.Sink, error) { - return lumberjackSink{ - Logger: getLumberjackLogger(dir), - }, nil - }) - loggerConfig := zap.Config{ - Level: zap.NewAtomicLevelAt(zapLevel), - Development: true, - Encoding: "console", - EncoderConfig: getEncoderConfig(), - OutputPaths: []string{fmt.Sprintf("lumberjack:%s", logFile)}, - } - var err error - zaplogger, err = loggerConfig.Build() - if err != nil { - panic(fmt.Sprintf("build zap logger from config error: %v", err)) - } - zap.ReplaceGlobals(zaplogger) - Log = zaplogger.Sugar() // NewSugar("sugar") - - Log.Infow("sugar log test1", - "url", "http://example.com", - "attempt", 3, - "backoff", time.Second, - ) - - Log.Infof("sugar log test2: %s", "http://example.com") - - return nil -} - -func NewSugar(name string) *zap.SugaredLogger { - return zaplogger.Named(name).Sugar() -} - -func getEncoderConfig() zapcore.EncoderConfig { - return zapcore.EncoderConfig{ - TimeKey: "ts", - LevelKey: "level", - NameKey: "logger", - CallerKey: "caller", - MessageKey: "msg", - StacktraceKey: "stacktrace", - FunctionKey: "func", - ConsoleSeparator: "|", - LineEnding: zapcore.DefaultLineEnding, - EncodeLevel: zapcore.CapitalLevelEncoder, - EncodeTime: zapcore.ISO8601TimeEncoder, - EncodeDuration: zapcore.SecondsDurationEncoder, - EncodeCaller: zapcore.ShortCallerEncoder, - } -} - -type lumberjackSink struct { - *lumberjack.Logger -} - -func (lumberjackSink) Sync() error { - return nil -} - -func getLumberjackLogger(dir string) *lumberjack.Logger { - return &lumberjack.Logger{ - Filename: "log.log", - MaxSize: 500, // megabytes - MaxBackups: 3, - MaxAge: 28, //days - Compress: true, // disabled by default - } -}