From 7853a35d996804e79dd783d252638e6653d0f55d Mon Sep 17 00:00:00 2001 From: tiglog Date: Sat, 15 Jul 2023 17:52:50 +0800 Subject: [PATCH] =?UTF-8?q?misc:=20=E4=BC=98=E5=8C=96=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gfile/file_path.go | 9 +++++++++ logger/access.go | 1 + logger/console.go | 1 + logger/init.go | 13 ++++++++++++- logger/log.go | 1 + logger/recover.go | 1 + logger/work.go | 1 + middleware/recover_log.go | 9 ++++++--- 8 files changed, 32 insertions(+), 4 deletions(-) diff --git a/gfile/file_path.go b/gfile/file_path.go index e8fbbf9..fb1d95f 100644 --- a/gfile/file_path.go +++ b/gfile/file_path.go @@ -174,4 +174,13 @@ func Ext(path string) string { // api.json => json func ExtName(path string) string { return strings.TrimLeft(Ext(path), ".") + +} + +func GetProjectHome() string { + dir, err := filepath.Abs(filepath.Dir(os.Args[0])) + if err != nil { + return "" + } + return dir } diff --git a/logger/access.go b/logger/access.go index 9acdbf9..d97122e 100644 --- a/logger/access.go +++ b/logger/access.go @@ -43,6 +43,7 @@ func Access() *zerolog.Logger { With(). Timestamp(). Stack(). + CallerWithSkipFrameCount(2). Logger() access_log = &l diff --git a/logger/console.go b/logger/console.go index 6e699a2..cdcb4f8 100644 --- a/logger/console.go +++ b/logger/console.go @@ -43,6 +43,7 @@ func Console() *zerolog.Logger { With(). Timestamp(). Stack(). + CallerWithSkipFrameCount(2). Logger() console_log = &l diff --git a/logger/init.go b/logger/init.go index 830c657..80a86f0 100644 --- a/logger/init.go +++ b/logger/init.go @@ -10,6 +10,7 @@ package logger import ( "path/filepath" "strconv" + "strings" "time" "github.com/rs/zerolog" @@ -26,7 +27,17 @@ func init() { zerolog.TimeFieldFormat = time.RFC3339 zerolog.CallerMarshalFunc = func(pc uintptr, file string, line int) string { - return filepath.Base(file) + ":" + strconv.Itoa(line) + new_files := strings.Split(file, "/") + l := len(new_files) + pos := 0 + var new_file string + if l-3 > 0 { + pos = l - 3 + new_file = strings.Join(new_files[pos:], "/") + } else { + new_file = filepath.Base(file) + } + return new_file + ":" + strconv.Itoa(line) } } diff --git a/logger/log.go b/logger/log.go index d750e38..036da8f 100644 --- a/logger/log.go +++ b/logger/log.go @@ -43,6 +43,7 @@ func Get() *zerolog.Logger { With(). Timestamp(). Stack(). + CallerWithSkipFrameCount(2). Logger() log = &l }) diff --git a/logger/recover.go b/logger/recover.go index a3127bb..d82cba8 100644 --- a/logger/recover.go +++ b/logger/recover.go @@ -43,6 +43,7 @@ func Recover() *zerolog.Logger { With(). Timestamp(). Stack(). + CallerWithSkipFrameCount(2). Logger() recover_log = &l diff --git a/logger/work.go b/logger/work.go index 6804372..ef6a8b7 100644 --- a/logger/work.go +++ b/logger/work.go @@ -42,6 +42,7 @@ func Work() *zerolog.Logger { With(). Timestamp(). Stack(). + CallerWithSkipFrameCount(2). Logger() work_log = &l diff --git a/middleware/recover_log.go b/middleware/recover_log.go index 82440d7..20d4c30 100644 --- a/middleware/recover_log.go +++ b/middleware/recover_log.go @@ -14,8 +14,9 @@ import ( "os" "strings" - "github.com/gin-gonic/gin" + "git.hexq.cn/tiglog/golib/helper" "git.hexq.cn/tiglog/golib/logger" + "github.com/gin-gonic/gin" ) func GinRecover() gin.HandlerFunc { @@ -37,14 +38,16 @@ func GinRecover() gin.HandlerFunc { httpRequest, _ := httputil.DumpRequest(c.Request, false) if brokenPipe { - log.Error().Err(err.(error)).Str("request", string(httpRequest)).Msg(c.Request.URL.Path) + log.Error().Err(err.(error)).Str("request", string(httpRequest)). + Msg(c.Request.URL.Path) // If the connection is dead, we can't write a status to it. c.Error(err.(error)) // nolint: errcheck c.Abort() return } var er = err.(error) - log.Error().Stack().Str("request", string(httpRequest)).Err(er).Msg("Recovery from panic") + log.Error().Str("request", string(httpRequest)). + Err(helper.WrapErr(er, "wrap")).Msg("Recovery from panic") c.AbortWithError(http.StatusInternalServerError, er) } }()