Golang fasthttp路由器自定义记录器
我在玩fasthttp和它的路由器,我没有基本的问题,我有一个工作服务器和一个路由器,这是最简单的部分 问题在于记录器,我希望能够自定义该记录器,但ctx.logger()似乎不可能,因为它只接受Printf参数,格式不是我想要的 有人知道我在文档中的什么地方可以找到我想要做的工作示例吗 我目前拥有的代码示例:Golang fasthttp路由器自定义记录器,go,go-http,fasthttp,Go,Go Http,Fasthttp,我在玩fasthttp和它的路由器,我没有基本的问题,我有一个工作服务器和一个路由器,这是最简单的部分 问题在于记录器,我希望能够自定义该记录器,但ctx.logger()似乎不可能,因为它只接受Printf参数,格式不是我想要的 有人知道我在文档中的什么地方可以找到我想要做的工作示例吗 我目前拥有的代码示例: package server import ( "github.com/fasthttp/router" "github.com/valy
package server
import (
"github.com/fasthttp/router"
"github.com/valyala/fasthttp"
)
// Router will manage the routes of our API server
func Router() *router.Router {
r := router.New()
r.GET("/", index)
return r
}
func index(ctx *fasthttp.RequestCtx) {
ctx.Logger().Printf("/")
ctx.WriteString("Welcome!")
}
因为我仍然在尝试我的网络服务器,我仍然不理解它的一些东西,所以我也去了。因此,我们欢迎举个例子
例如,我希望能够使用主软件包中的logger define执行类似的操作:
package server
import (
"github.com/fasthttp/router"
"github.com/valyala/fasthttp"
"go.uber.org/zap"
)
// Router will manage the routes of our API server
func Router(loger *zap.Logger) *router.Router {
r := router.New()
r.GET("/", index)
return r
}
func index(ctx *fasthttp.RequestCtx) {
ctx.Logger().Printf("/") // Here should print in the zap format of my choice.
ctx.WriteString("Welcome!")
}
如果您查看源代码,很明显您所拥有的只是编写标准Go格式字符串的能力:
func (cl *ctxLogger) Printf(format string, args ...interface{}) {
msg := fmt.Sprintf(format, args...)
ctxLoggerLock.Lock()
cl.logger.Printf("%.3f %s - %s", time.Since(cl.ctx.ConnTime()).Seconds(), cl.ctx.String(), msg)
ctxLoggerLock.Unlock()
}
记录器只是从上下文中添加一些附加信息。因此,标准Go格式之外的进一步切割似乎是不可能的。我不确定“我选择的zap格式”是什么,所以我不能说是否有解决方法,甚至不能说标准的Go格式选项是否适合您。您还没有说希望记录器做什么。顺便说一句,Go BTW有很多替代记录器。我想要的是能够定制fasthttprouter记录器。不过我还是会用一个例子来更新这个问题。我从来没有说过我希望它能像那样工作,我希望能够做这样的事情,如果我必须使用ctx.Logger()以外的东西,对我来说也没问题。。。正如我所说,我真的不知道如何去做我想做的事情,所以我举了一个例子,而不是最终的结果。