Repository navigation
v0.4.1 - Minor addition
I've added a LogWithLevel() function for logging with other severities like "ERROR"
// Logging middleware, http request information will be included automatically
//
// Parameters:
// - The severity level of the log (zapcore level: https://pkg.go.dev/go.uber.org/zap/zapcore#Level)
// - The request itself, which will have its information included in the log
// - A message
// - Optionally, however many zap fields you want to include in the log
//
// Example:
// mw.Log(zapcore.ErrorLevel, r, "Something else happened", zap.String("username", "totallyauser"), zap.Int("numOfInfo", 1))
func (m *Middleware) LogWithLevel(level zapcore.Level, r *http.Request, msg string, fields ...zapcore.Field) {
defer m.Logger.Sync()
m.Logger.Log(level, msg,
append([]zapcore.Field{
zap.String("method", r.Method),
zap.String("url", r.URL.String()),
zap.Array("headers", log.HeaderArrayMarshaler{Headers: r.Header}),
zap.String("body", log.BodyToString(r, m.Logger, r.URL.String())),
}, fields...)...,
)
}