Skip to content

v0.4.1

Latest

Choose a tag to compare

@osm6495 osm6495 released this 13 Jul 21:49
· 3 commits to main since this release

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...)...,
	)
}