gpt4 book ai didi

go - 日志中间件的使用方法

转载 作者:IT王子 更新时间:2023-10-29 00:46:12 24 4
gpt4 key购买 nike

下面是我使用 Labstack 的 Echo 用 Go 编写的 Web 应用程序的入口点:

package main

import (
"github.com/labstack/echo"
mw "github.com/labstack/echo/middleware"
)

func main() {
controller := controllers.NewUserController(getSession())

app := echo.New()

app.Use(mw.Logger())
app.Use(mw.Recover())
app.SetDebug(true)

app.Post("/users", controller.CreateUser)
app.Get("/users", controller.ListUsers)
app.Get("/users/:id", controller.GetUser)
app.Patch("/users/:id", controller.UpdateUser)
app.Delete("/users/:id", controller.DeleteUser)

app.Run(":8000")
}

如何重用 Echo 应用程序中实例化的日志记录中间件?我试过这个:

包 Controller

import (
"net/http"

"github.com/labstack/echo"
"gopkg.in/mgo.v2"
"gopkg.in/mgo.v2/bson"
)

type (
UserController struct {
session *mgo.Session
}
)

func NewUserController(s *mgo.Session) *UserController {
return &UserController{s}
}

func (userController UserController) CreateUser(context *echo.Context) error {
user := &models.User{}

if err := context.Bind(user); err != nil {
context.Echo().Logger().Error("Error creating user")
return err
}

user.Id = bson.NewObjectId()

userController.session.DB("test").C("users").Insert(user)
context.Echo().Logger().Debug("Created user", id)

return context.JSON(http.StatusCreated, user)
}

即使上面的代码编译通过,语句

context.Echo().Logger().Debug("Created user", id)

产生任何输出...而下面的语句:

context.Echo().Logger().Info("Created user", id)

我错过了什么吗?

最佳答案

我刚开始使用 Echo,不知道自发布以来是否有任何变化,但我发现您可以只导入 labstack 的记录器:

import "github.com/labstack/gommon/log"

然后使用它:

log.Debug("Created user", id)

关于go - 日志中间件的使用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35722459/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com