我们如何使用 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() 的任何输出,那么您必须使用 fmt.Println().

Print :- "Print" 这不能格式化任何东西,它只是接受一个字符串并打印它

Println :- "Print Line" 与 Printf() 相同,但它会附加一个换行符 \n

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

确实有效,问题是代码没有达到那个程度;终于在代码中将它移到了更高的位置,现在可以在 stdout

中看到打印