kubernetes: github.com/igm/kubernetes/pkg/httplog Index | Files

package httplog

import "github.com/igm/kubernetes/pkg/httplog"

Package httplog contains a helper object and functions to maintain a log along with an http response.

Index

Package Files

doc.go log.go

func DefaultStacktracePred Uses

func DefaultStacktracePred(status int) bool

DefaultStacktracePred is the default implementation of StacktracePred.

func Handler Uses

func Handler(delegate http.Handler, pred StacktracePred) http.Handler

Handler wraps all HTTP calls to delegate with nice logging. delegate may use LogOf(w).Addf(...) to write additional info to the per-request log message.

Intended to wrap calls to your ServeMux.

func LogOf Uses

func LogOf(req *http.Request, w http.ResponseWriter) logger

LogOf returns the logger hiding in w. If there is not an existing logger then a passthroughLogger will be created which will log to stdout immediately when Addf is called.

func NewLogged Uses

func NewLogged(req *http.Request, w *http.ResponseWriter) *respLogger

NewLogged turns a normal response writer into a logged response writer.

Usage:

defer NewLogged(req, &w).StacktraceWhen(StatusIsNot(200, 202)).Log()

(Only the call to Log() is defered, so you can set everything up in one line!)

Note that this *changes* your writer, to route response writing actions through the logger.

Use LogOf(w).Addf(...) to log something along with the response result.

func Unlogged Uses

func Unlogged(w http.ResponseWriter) http.ResponseWriter

Unlogged returns the original ResponseWriter, or w if it is not our inserted logger.

type StacktracePred Uses

type StacktracePred func(httpStatus int) (logStacktrace bool)

StacktracePred returns true if a stacktrace should be logged for this status.

func StatusIsNot Uses

func StatusIsNot(statuses ...int) StacktracePred

StatusIsNot returns a StacktracePred which will cause stacktraces to be logged for any status *not* in the given list.

Package httplog imports 5 packages (graph). Updated 2018-04-17. Refresh now. Tools for package owners.