type StacktracePred …
type ShouldLogRequestPred …
type logger …
type respLoggerContextKeyType …
const respLoggerContextKey …
type respLogger …
var _ …
var _ …
func (rl *respLogger) Unwrap() http.ResponseWriter { … }
type passthroughLogger …
func (passthroughLogger) Addf(format string, data ...interface{ … }
func DefaultStacktracePred(status int) bool { … }
const withLoggingLevel …
func WithLogging(handler http.Handler, pred StacktracePred) http.Handler { … }
func withLogging(handler http.Handler, stackTracePred StacktracePred, shouldLogRequest ShouldLogRequestPred) http.Handler { … }
func respLoggerFromContext(ctx context.Context) *respLogger { … }
func respLoggerFromRequest(req *http.Request) *respLogger { … }
func newLoggedWithStartTime(req *http.Request, w http.ResponseWriter, startTime time.Time) *respLogger { … }
func newLogged(req *http.Request, w http.ResponseWriter) *respLogger { … }
func LogOf(req *http.Request, w http.ResponseWriter) logger { … }
func Unlogged(req *http.Request, w http.ResponseWriter) http.ResponseWriter { … }
func (rl *respLogger) StacktraceWhen(pred StacktracePred) *respLogger { … }
func StatusIsNot(statuses ...int) StacktracePred { … }
func (rl *respLogger) Addf(format string, data ...interface{ … }
func AddInfof(ctx context.Context, format string, data ...interface{ … }
func (rl *respLogger) AddKeyValue(key string, value interface{ … }
func AddKeyValue(ctx context.Context, key string, value interface{ … }
func SetStacktracePredicate(ctx context.Context, pred StacktracePred) { … }
func (rl *respLogger) Log() { … }
func (rl *respLogger) Header() http.Header { … }
func (rl *respLogger) Write(b []byte) (int, error) { … }
func (rl *respLogger) WriteHeader(status int) { … }
func (rl *respLogger) Hijack() (net.Conn, *bufio.ReadWriter, error) { … }
func (rl *respLogger) recordStatus(status int) { … }