httplogger

package module
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Sep 28, 2017 License: MIT Imports: 7 Imported by: 1

README

httplogger

Build Status

Usage

Basic Example
func main() {
	client := &http.Client{
		TransPort: httplogger.NewRoundTripper(os.Stdout, nil),
	 }
		if _, err := client.Get("http://example.com"); err != nil {
		log.Fatal(err)
	}
}
[http] --> 2017/08/25 23:35:56 GET /
Host: example.com
User-Agent: gentleman/2.0.0

[http] <-- 2017/08/25 23:35:56 HTTP/2.0 200 OK (93ms)
Cache-Control: max-age=0, private, must-revalidate
Content-Type: application/json; charset=utf-8
Date: Sat, 25 Aug 2017 23:35:56 GMT
Server: nginx

<!DOCTYPE html>
...
Simple Custom Logger
func main() {
	logger := log.New(os.Stdout, "[http] ", log.LstdFlags)
	client := &http.Client{
		TransPort: httplogger.NewRoundTripper(os.Stdout, nil),
	}
	if _, err := client.Get("http://example.com"); err != nil {
		log.Fatal(err)
	}
}

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func FromSimpleLogger

func FromSimpleLogger(writer SimpleLogWriter, parent http.RoundTripper) http.RoundTripper

FromSimpleLogger creates new logging RoundTripper instance with given log writer

func NewRoundTripper

func NewRoundTripper(out io.Writer, parent http.RoundTripper) http.RoundTripper

NewRoundTripper returns new RoundTripper instance for logging http request and response

Types

type LogWriter

type LogWriter interface {
	PrintRequest(req *RequestLog)
	PrintResponse(resp *ResponseLog)
}

LogWriter is interface for writing logs

type RequestLog

type RequestLog struct {
	*http.Request
	RequestedAt time.Time
}

RequestLog contains http(s) request information

type ResponseLog

type ResponseLog struct {
	*http.Response
	DurationNano int64
	Error        error
}

ResponseLog contains http(s) response information or errors

type SimpleLogWriter

type SimpleLogWriter interface {
	Print(v ...interface{})
}

SimpleLogWriter is interface for writing logs

Jump to

Keyboard shortcuts

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