1
0
mirror of https://github.com/gofiber/fiber.git synced 2025-02-06 13:49:31 +00:00

🧹 chore: Backport ctx.String() from v3 (#3294)

* Backport ctx.String() to v2

* Fix lint issues
This commit is contained in:
Juan Calderon-Perez 2025-01-27 09:00:51 -05:00 committed by GitHub
parent 8b9db059d7
commit 42d921d353
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

41
ctx.go
View File

@ -1834,14 +1834,39 @@ func (c *Ctx) Status(status int) *Ctx {
//
// The returned value may be useful for logging.
func (c *Ctx) String() string {
return fmt.Sprintf(
"#%016X - %s <-> %s - %s %s",
c.fasthttp.ID(),
c.fasthttp.LocalAddr(),
c.fasthttp.RemoteAddr(),
c.fasthttp.Request.Header.Method(),
c.fasthttp.URI().FullURI(),
)
// Get buffer from pool
buf := bytebufferpool.Get()
// Start with the ID, converting it to a hex string without fmt.Sprintf
buf.WriteByte('#') //nolint:errcheck // Not needed here
// Convert ID to hexadecimal
id := strconv.FormatUint(c.fasthttp.ID(), 16)
// Pad with leading zeros to ensure 16 characters
for i := 0; i < (16 - len(id)); i++ {
buf.WriteByte('0') //nolint:errcheck // Not needed here
}
buf.WriteString(id) //nolint:errcheck // Not needed here
buf.WriteString(" - ") //nolint:errcheck // Not needed here
// Add local and remote addresses directly
buf.WriteString(c.fasthttp.LocalAddr().String()) //nolint:errcheck // Not needed here
buf.WriteString(" <-> ") //nolint:errcheck // Not needed here
buf.WriteString(c.fasthttp.RemoteAddr().String()) //nolint:errcheck // Not needed here
buf.WriteString(" - ") //nolint:errcheck // Not needed here
// Add method and URI
buf.Write(c.fasthttp.Request.Header.Method()) //nolint:errcheck // Not needed here
buf.WriteByte(' ') //nolint:errcheck // Not needed here
buf.Write(c.fasthttp.URI().FullURI()) //nolint:errcheck // Not needed here
// Allocate string
str := buf.String()
// Reset buffer
buf.Reset()
bytebufferpool.Put(buf)
return str
}
// Type sets the Content-Type HTTP header to the MIME type specified by the file extension.