簡體   English   中英

我們如何使用 gofiber golang 框架登錄到標准輸出?

[英]How do we log to stdout with gofiber golang framework?

我正在尋找一種使用 gofiber golang 框架將一些數據記錄到 stdout 的方法,因為該框架非常安靜並且主要不會記錄錯誤

我在想我可以只使用fmf.Print但即使這樣也根本沒有被接受

你們如何使用 gofiber 框架進行故障排除? 當框架很少吐出任何東西時,我如何檢測代碼中的問題。

例如,這是我正在嘗試做的事情,但在標准輸出中什么也沒有

func GetUserEmail(c *fiber.Ctx) (string, error) {
    cookie := c.Cookies("access_token")

    token, err := jwt.ParseWithClaims(cookie, &ClaimsWithScope{}, func(token *jwt.Token) (interface{}, error) {
        return []byte(SecretKey), nil
    })

    if err != nil {
        return "issues found", err
    }


    payload := token.Claims.(*ClaimsWithScope)

    email := payload.Subject
    fmt.Print("email is", email, "\n")
    return email, nil
}

從上面我有這行fmt.Print("email is", email, "\n")email的值打印到標准輸出,因此我可以進行故障排除,但根本沒有打印任何內容

需要使 gofiber 詳細以解決問題

要使用聲明或自定義聲明解析 JWT,您應該檢查狀態。

// pass your custom claims to the parser function and data type of cookie parameter should be string
    token, err := jwt.ParseWithClaims(cookie, &ClaimsWithScope{}, func(token *jwt.Token) (interface{}, error) {
        if _, ok := token.Method.(*jwt.SigningMethodHMAC); !ok {
            return nil, errors.New("unexpected signing method")
        }
        return []byte(/* your JWT secret*/), nil
    })

    // type-assert `Claims` into a variable of the appropriate type
    payload := token.Claims.(*ClaimsWithScope)

如果您沒有看到任何帶有fmt.Print()的 output ,那么您必須使用fmt.Println()

Print :- "Print" 這不能格式化任何東西,它只需要一個字符串並打印它

Println :- "Print Line" 與Printf()相同,但是它將 append 換行符\n

fmt.Println("email is", email, "\n")

確實有效,問題是代碼沒有達到這一點; 終於在代碼中將它移到更高的位置,現在可以在標准輸出中看到打印

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM