GoFrame 日志組件-堆棧打印

2022-03-29 16:45 更新

錯誤日志信息支持?Stack?特性,該特性可以自動打印出當前調用日志組件方法的堆棧信息,該堆棧信息可以通過?Notice*/Warning*/Error*/Critical*/Panic*/Fatal*?等錯誤日志輸出方法觸發(fā),也可以通過?GetStack/PrintStack?獲取/打印。錯誤信息的?stack?信息對于調試來說相當有用。

示例1,通過Error方法觸發(fā)

package main

import (
	"context"

	"github.com/gogf/gf/v2/os/glog"
)

func Test(ctx context.Context) {
	glog.Error(ctx, "This is error!")
}

func main() {
	ctx := context.TODO()
	Test(ctx)
}

打印出的結果如下:

2022-01-05 15:08:54.998 [ERRO] This is error! 
Stack:
1.  main.Test
    C:/hailaz/test/main.go:10
2.  main.main
    C:/hailaz/test/main.go:15

示例2,通過Stack方法打印

package main

import (
	"context"
	"fmt"

	"github.com/gogf/gf/v2/os/glog"
)

func main() {
	ctx := context.TODO()
	glog.PrintStack(ctx)
	glog.New().PrintStack(ctx)

	fmt.Println(glog.GetStack())
	fmt.Println(glog.New().GetStack())
}

執(zhí)行后,輸出結果為:

2019-07-12 22:20:28.070 Stack:
1. main.main
   /home/john/Workspace/Go/GOPATH/src/github.com/gogf/gf/v2/geg/os/glog/glog_stack.go:11

2019-07-12 22:20:28.070 Stack:
1. main.main
   /home/john/Workspace/Go/GOPATH/src/github.com/gogf/gf/v2/geg/os/glog/glog_stack.go:12

1. main.main
   /home/john/Workspace/Go/GOPATH/src/github.com/gogf/gf/v2/geg/os/glog/glog_stack.go:14

1. main.main
   /home/john/Workspace/Go/GOPATH/src/github.com/gogf/gf/v2/geg/os/glog/glog_stack.go:15

示例3,打印gerror.Error

?glog?日志模塊支持對標準錯誤以及?gerror?錯誤的堆棧打印支持。

package main

import (
	"context"
	"errors"

	"github.com/gogf/gf/v2/errors/gerror"
	"github.com/gogf/gf/v2/os/glog"
)

func MakeError() error {
	return errors.New("connection closed with normal error")
}

func MakeGError() error {
	return gerror.New("connection closed with gerror")
}

func TestGError(ctx context.Context) {
	err1 := MakeError()
	err2 := MakeGError()
	glog.Error(ctx, err1)
	glog.Error(ctx, err2)
}

func main() {
	ctx := context.TODO()
	TestGError(ctx)
}

執(zhí)行后,終端輸出:

2019-07-12 22:23:11.467 [ERRO] connection closed with normal error
Stack:
1. main.TestGError
   /home/john/Workspace/Go/GOPATH/src/github.com/gogf/gf/v2/geg/os/glog/glog_gerror.go:20
2. main.main
   /home/john/Workspace/Go/GOPATH/src/github.com/gogf/gf/v2/geg/os/glog/glog_gerror.go:25

2019-07-12 22:23:11.467 [ERRO] connection closed with gerror
1. connection closed with gerror
    1). main.MakeGError
        /home/john/Workspace/Go/GOPATH/src/github.com/gogf/gf/v2/geg/os/glog/glog_gerror.go:14
    2). main.TestGError
        /home/john/Workspace/Go/GOPATH/src/github.com/gogf/gf/v2/geg/os/glog/glog_gerror.go:19
    3). main.main
        /home/john/Workspace/Go/GOPATH/src/github.com/gogf/gf/v2/geg/os/glog/glog_gerror.go:25
Stack:
1. main.TestGError
   /home/john/Workspace/Go/GOPATH/src/github.com/gogf/gf/v2/geg/os/glog/glog_gerror.go:21
2. main.main
   /home/john/Workspace/Go/GOPATH/src/github.com/gogf/gf/v2/geg/os/glog/glog_gerror.go:25


以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號