httplog

package
v0.4.8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 8, 2023 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const (
	Duration            = "duration" // In nanoseconds
	HTTPStatusCode      = "http.status_code"
	HTTPMethod          = "http.method"
	HTTPURLDetailsPath  = "http.url_details.path"
	NetworkBytesWritten = "network.bytes_written"
	Operation           = "op"
	Request             = "request.body"
	RequestID           = "http.request_id"
	RequestHeaders      = "request.headers"
	RequestSize         = "network.bytes_read"
	RequestError        = "request.body_error"
	Response            = "response.body"
	TraceID             = "trace_id"
	UserID              = "usr.id"
)

Reference: https://docs.datadoghq.com/logs/log_configuration/attributes_naming_convention/#http-requests

Variables

View Source
var ErrInternal = errors.New("internal error")

ErrInternal is the default error returned from a panic.

View Source
var MaxRequestBodyLog = 24 * 1024

MaxRequestBodyLog controls the maximum request body that can be logged. Anything greater will be truncated.

View Source
var RecoverBasePath = initBasePath()

Functions

func LogAll added in v0.3.3

func LogAll(_ *http.Request) (bool, bool, bool)

func LogRequestBody added in v0.3.3

func LogRequestBody(_ *http.Request) (bool, bool, bool)

func RecoverLogger added in v0.3.3

func RecoverLogger(log zerolog.Logger) func(http.Handler) http.Handler

RecoverLogger returns a handler that call initializes Op in the context, and logs each request.

func RequestLogger

func RequestLogger(shouldLog FnShouldLog) func(http.Handler) http.Handler

RequestLogger returns a handler that call initializes Op in the context, and logs each request.

Types

type FnShouldLog

type FnShouldLog func(r *http.Request) (logRequest, logRequestBody, logResponseBody bool)

FnShouldLog given a request, return flags that control logging. logRequest will disable the entire request logging middleware, default is true. logRequestBody will log the body of the request, default is false. logResponseBody will log the body of the response, default is false. This should be disabled for large or streaming results.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL