From 7d1b138d3f971f47c2fad0026151281a7142e9ca Mon Sep 17 00:00:00 2001 From: yedf2 <120050102@qq.com> Date: Sat, 4 Dec 2021 23:01:20 +0800 Subject: [PATCH] use uber zap log --- dtmcli/dtmimp/utils.go | 43 ++++++++++++++++++++++-------------------- go.mod | 3 +++ go.sum | 9 +++++++++ 3 files changed, 35 insertions(+), 20 deletions(-) diff --git a/dtmcli/dtmimp/utils.go b/dtmcli/dtmimp/utils.go index be66793..b78c901 100644 --- a/dtmcli/dtmimp/utils.go +++ b/dtmcli/dtmimp/utils.go @@ -11,21 +11,22 @@ import ( "encoding/json" "errors" "fmt" + "log" "os" - "path" "runtime" "runtime/debug" "strconv" "strings" "sync" - "time" "github.com/go-resty/resty/v2" + "go.uber.org/zap" + "go.uber.org/zap/zapcore" ) // AsError wrap a panic value as an error func AsError(x interface{}) error { - LogRedf("panic to error: '%v', stack: \n%s", x, debug.Stack()) + LogRedf("panic to error: '%v'", x) if e, ok := x.(error); ok { return e } @@ -118,28 +119,30 @@ func MustRemarshal(from interface{}, to interface{}) { E2P(err) } -var layout = "2006/01/02 15:04:05.999" +var logger *zap.SugaredLogger = nil -// Logf 输出日志 -func Logf(format string, args ...interface{}) { - msg := fmt.Sprintf(format, args...) - - ts := time.Now().Format(layout) - - var file string - var line int - for i := 1; i < 10; i++ { - _, file, line, _ = runtime.Caller(i) - if strings.Contains(file, "dtm") { - break - } +func init() { + config := zap.NewProductionConfig() + config.EncoderConfig.EncodeTime = zapcore.ISO8601TimeEncoder + if os.Getenv("DTM_PRODUCTION") == "" { + config.Encoding = "console" + config.EncoderConfig.EncodeLevel = zapcore.CapitalColorLevelEncoder } - fmt.Printf("%s %s:%d %s\n", ts, path.Base(file), line, msg) + p, err := config.Build() + if err != nil { + log.Fatal("create logger failed: ", err) + } + logger = p.Sugar() +} + +// Logf 输出日志 +func Logf(fmt string, args ...interface{}) { + logger.Infof(fmt, args...) } // LogRedf 采用红色打印错误类信息 func LogRedf(fmt string, args ...interface{}) { - Logf("\x1b[31m\n"+fmt+"\x1b[0m\n", args...) + logger.Errorf(fmt, args) } // FatalExitFunc Fatal退出函数,测试时被替换 @@ -148,7 +151,7 @@ var FatalExitFunc = func() { os.Exit(1) } // LogFatalf 采用红色打印错误类信息, 并退出 func LogFatalf(fmt string, args ...interface{}) { fmt += "\n" + string(debug.Stack()) - Logf("\x1b[31m\n"+fmt+"\x1b[0m\n", args...) + LogRedf(fmt, args...) FatalExitFunc() } diff --git a/go.mod b/go.mod index e9e9606..ca9276f 100644 --- a/go.mod +++ b/go.mod @@ -15,7 +15,10 @@ require ( github.com/yedf/dtmdriver v0.0.0-20211203060147-29426c663b6e github.com/yedf/dtmdriver-gozero v0.0.0-20211204083751-a14485949435 github.com/yedf/dtmdriver-protocol1 v0.0.0-20211203060330-285168cdaa00 + go.uber.org/atomic v1.9.0 // indirect go.uber.org/automaxprocs v1.4.1-0.20210525221652-0180b04c18a7 + go.uber.org/multierr v1.7.0 // indirect + go.uber.org/zap v1.19.1 golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa // indirect google.golang.org/grpc v1.42.0 google.golang.org/protobuf v1.27.1 diff --git a/go.sum b/go.sum index b9309ed..0277f9d 100644 --- a/go.sum +++ b/go.sum @@ -53,6 +53,7 @@ github.com/alicebob/miniredis/v2 v2.16.0/go.mod h1:gquAfGbzn92jvtrSC69+6zZnwSODV github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= github.com/antlr/antlr4/runtime/Go/antlr v0.0.0-20210521184019-c5ad59b459ec/go.mod h1:F7bn7fEU90QkQ3tnmaTx3LTKLEDqnwWODIYppRQ5hnY= github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= +github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= @@ -505,20 +506,27 @@ go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= +go.uber.org/atomic v1.9.0 h1:ECmE8Bn/WFTYwEW/bpKD3M8VtR/zQVbavAoalC1PYyE= +go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/automaxprocs v1.4.0/go.mod h1:/mTEdr7LvHhs0v7mjdxDreTz1OG5zdZGqgOnhWiR/+Q= go.uber.org/automaxprocs v1.4.1-0.20210525221652-0180b04c18a7 h1:dRxPYqUfp41vIUNfZhZRtI0TZf08Wf5BAwamC5H/DMI= go.uber.org/automaxprocs v1.4.1-0.20210525221652-0180b04c18a7/go.mod h1:/mTEdr7LvHhs0v7mjdxDreTz1OG5zdZGqgOnhWiR/+Q= +go.uber.org/goleak v1.1.11-0.20210813005559-691160354723/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU= go.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4= go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= +go.uber.org/multierr v1.7.0 h1:zaiO/rmgFjbmCXdSYJWQcdvOCsthmdaHfr3Gm2Kx4Ec= +go.uber.org/multierr v1.7.0/go.mod h1:7EAYxJLBy9rStEaz58O2t4Uvip6FSURkq8/ppBp95ak= go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= go.uber.org/zap v1.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= go.uber.org/zap v1.17.0 h1:MTjgFu6ZLKvY6Pvaqk97GlxNBuMpV4Hy/3P6tRGlI2U= go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= +go.uber.org/zap v1.19.1 h1:ue41HOKd1vGURxrmeKIgELGb3jPW9DMUDGtsinblHwI= +go.uber.org/zap v1.19.1/go.mod h1:j3DNczoxDZroyBnOT1L/Q79cfUMGZxlv/9dzN7SM1rI= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190411191339-88737f569e3a/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= @@ -729,6 +737,7 @@ golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4f golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=