From 52c21d0814690be7c122a09582a402c59af03a64 Mon Sep 17 00:00:00 2001 From: yuguojian <18126816215> Date: Thu, 8 May 2025 18:07:13 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- go.mod | 7 +++++++ go.sum | 8 ++++++++ log.go | 35 +++++++++++++++++++++++++++++++---- 3 files changed, 46 insertions(+), 4 deletions(-) create mode 100644 go.sum diff --git a/go.mod b/go.mod index f20805c..0ede5bb 100644 --- a/go.mod +++ b/go.mod @@ -1,3 +1,10 @@ module git.ssgfgtfy.com/public/common_structure go 1.18.0 + +require ( + github.com/dromara/carbon/v2 v2.6.4 // indirect + github.com/golang-module/carbon/v2 v2.5.9 // indirect + go.uber.org/multierr v1.10.0 // indirect + go.uber.org/zap v1.27.0 // indirect +) diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..c324348 --- /dev/null +++ b/go.sum @@ -0,0 +1,8 @@ +github.com/dromara/carbon/v2 v2.6.4 h1:cpIansyiEIEed3OlEIqo1IXj86qu0x6pf/E2keL2wYo= +github.com/dromara/carbon/v2 v2.6.4/go.mod h1:Baj3A1uBBctJmpZWJd6/+WWnmIuY2pobR6IOpB6xigc= +github.com/golang-module/carbon/v2 v2.5.9 h1:QKotfr6/Fkk5RGIPyEfItaR5guF37QH2YyKCbn1EFxM= +github.com/golang-module/carbon/v2 v2.5.9/go.mod h1:yAYXIP0OIq7ykDosUWpZpEyTGuvBXnSjGMQ/EaNagYQ= +go.uber.org/multierr v1.10.0 h1:S0h4aNzvfcFsC3dRF1jLoaov7oRaKqRGC/pUEJ2yvPQ= +go.uber.org/multierr v1.10.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= +go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= +go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= diff --git a/log.go b/log.go index 29be57a..b345a00 100644 --- a/log.go +++ b/log.go @@ -1,6 +1,10 @@ package common_structure -import "time" +import ( + "fmt" + "github.com/dromara/carbon/v2" + "go.uber.org/zap" +) type LogType = string @@ -22,9 +26,9 @@ type LogInfo struct { ObjectorID int `json:"objector_id,omitempty"` // 被操作对象ID,如果是gps,短信等服务则为0 Title string `json:"title"` // 必填,标题,做什么事情 Param interface{} `json:"param,omitempty"` // 参数,请求参数,传指针 - Result interface{} `json:"result,omitempty"` // 结果,返回值,传指针 - ErrStr string `json:"err_str,omitempty"` // 错误信息,json转义error没有自动存储,需要手动转义 - At time.Time `json:"at"` // 记录时间 + Result interface{} `json:"result,omitempty"` // 结果,返回值,传指针,如果是报错,传err + ErrStr string `json:"err_str,omitempty"` // 错误信息 + At string `json:"at"` // 记录时间,不用传入,自动记录 } type OperatorType = string @@ -39,3 +43,26 @@ type Operator struct { ID int // 系统ID设置0 OperatorType OperatorType } + +func ZapPanic(logger *zap.Logger, log *LogInfo) { + handleLog(log) + logger.Panic("", zap.Any("log", log)) +} + +func ZapInfo(logger *zap.Logger, log *LogInfo) { + handleLog(log) + logger.Info("", zap.Any("log", log)) +} + +func ZapError(logger *zap.Logger, log *LogInfo) { + handleLog(log) + logger.Error("", zap.Any("log", log)) +} + +func handleLog(log *LogInfo) { + log.At = carbon.Now().ToDateTimeString() + if _, ok := log.Result.(error); ok { + log.ErrStr = fmt.Sprintf("%+v", log.Result) + log.Result = nil + } +}