Skip to content

Commit

Permalink
🧹 chore: Backport ctx.String() from v3 (#3294)
Browse files Browse the repository at this point in the history
* Backport ctx.String() to v2

* Fix lint issues
  • Loading branch information
gaby authored Jan 27, 2025
1 parent 8b9db05 commit 42d921d
Showing 1 changed file with 33 additions and 8 deletions.
41 changes: 33 additions & 8 deletions ctx.go
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down

0 comments on commit 42d921d

Please sign in to comment.