access

package
v2.1.4+incompatible Latest Latest
Warning

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

Go to latest
Published: Feb 10, 2018 License: MIT Imports: 5 Imported by: 33

Documentation

Overview

Package access provides an access logging handler for the ozzo routing package.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CustomLogger

func CustomLogger(loggerFunc LogWriterFunc) routing.Handler

CustomLogger returns a handler that calls the LogWriterFunc passed to it for every request. The LogWriterFunc is provided with the http.Request and LogResponseWriter objects for the request, as well as the elapsed time since the request first came through the middleware. LogWriterFunc can then do whatever logging it needs to do.

import (
    "log"
    "github.com/go-ozzo/ozzo-routing"
    "github.com/go-ozzo/ozzo-routing/access"
    "net/http"
)

func myCustomLogger(req http.Context, res access.LogResponseWriter, elapsed int64) {
    // Do something with the request, response, and elapsed time data here
}
r := routing.New()
r.Use(access.CustomLogger(myCustomLogger))

func GetClientIP

func GetClientIP(req *http.Request) string

func Logger

func Logger(log LogFunc) routing.Handler

Logger returns a handler that logs a message for every request. The access log messages contain information including client IPs, time used to serve each request, request line, response status and size.

import (
    "log"
    "github.com/go-ozzo/ozzo-routing"
    "github.com/go-ozzo/ozzo-routing/access"
)

r := routing.New()
r.Use(access.Logger(log.Printf))

Types

type LogFunc

type LogFunc func(format string, a ...interface{})

LogFunc logs a message using the given format and optional arguments. The usage of format and arguments is similar to that for fmt.Printf(). LogFunc should be thread safe.

type LogResponseWriter

type LogResponseWriter struct {
	http.ResponseWriter
	Status       int
	BytesWritten int64
}

LogResponseWriter wraps http.ResponseWriter in order to capture HTTP status and response length information.

func (*LogResponseWriter) Write

func (r *LogResponseWriter) Write(p []byte) (int, error)

func (*LogResponseWriter) WriteHeader

func (r *LogResponseWriter) WriteHeader(status int)

type LogWriterFunc

type LogWriterFunc func(req *http.Request, res *LogResponseWriter, elapsed float64)

LogWriterFunc takes in the request and responseWriter objects as well as a float64 containing the elapsed time since the request first passed through this middleware and does whatever log writing it wants with that information. LogWriterFunc should be thread safe.

Jump to

Keyboard shortcuts

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