Skip to content

🐛 [Bug]: Logger Middleware: Enabling color changes padding for some fields #2604

@JShorthouse

Description

@JShorthouse

The colourization code for {method} and {status} formats the value and adds extra padding either side. This padding is not added when colorization is disabled.

TagStatus: func(output Buffer, c *fiber.Ctx, data *Data, extraParam string) (int, error) {
if cfg.enableColors {
colors := c.App().Config().ColorScheme
return output.WriteString(fmt.Sprintf("%s %3d %s", statusColor(c.Response().StatusCode(), colors), c.Response().StatusCode(), colors.Reset))
}
return appendInt(output, c.Response().StatusCode())
},
TagMethod: func(output Buffer, c *fiber.Ctx, data *Data, extraParam string) (int, error) {
if cfg.enableColors {
colors := c.App().Config().ColorScheme
return output.WriteString(fmt.Sprintf("%s %-7s %s", methodColor(c.Method(), colors), c.Method(), colors.Reset))
}
return output.WriteString(c.Method())
},

This discrepency is immediately obvious when using a custom format that puts these values in brackets, e.g:

"${time} [${locals:requestid}: ${ip}] (${status}) [${method}] ${path}​\n"

With DisableColours: false:

image

DisableColours: true:

image

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions