logging

package
v0.0.0-...-9518a5e Latest Latest
Warning

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

Go to latest
Published: Oct 6, 2021 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// LoggerNameKey is a key we can use to denote zerologLogger names across implementations.
	LoggerNameKey = "_name_"
)
View Source
const (
	// ProviderZerolog indicates you'd like to use the zerolog Logger.
	ProviderZerolog = "zerolog"
)

Variables

This section is empty.

Functions

func BuildLoggingMiddleware

func BuildLoggingMiddleware(logger Logger) func(next http.Handler) http.Handler

BuildLoggingMiddleware builds a logging middleware.

Types

type Config

type Config struct {
	Name     string `json:"name"  mapstructure:"name" toml:"name"`
	Level    Level  `json:"level"  mapstructure:"level" toml:"level"`
	Provider string `json:"provider" mapstructure:"provider" toml:"provider"`
	// contains filtered or unexported fields
}

Config configures a zerologLogger.

type Level

type Level *level

Level is a simple string alias for dependency injection's sake.

var (
	// InfoLevel describes a info-level log.
	InfoLevel Level = new(level)
	// DebugLevel describes a debug-level log.
	DebugLevel Level = new(level)
	// ErrorLevel describes a error-level log.
	ErrorLevel Level = new(level)
	// WarnLevel describes a warn-level log.
	WarnLevel Level = new(level)
)

type Logger

type Logger interface {
	Info(string)
	Debug(string)
	Error(err error, whatWasHappeningWhenErrorOccurred string)
	Fatal(error)
	Printf(string, ...interface{})

	SetLevel(Level)
	SetRequestIDFunc(RequestIDFunc)

	Clone() Logger
	WithName(string) Logger
	WithValues(map[string]interface{}) Logger
	WithValue(string, interface{}) Logger
	WithRequest(*http.Request) Logger
	WithResponse(response *http.Response) Logger
	WithError(error) Logger
}

Logger represents a simple logging interface we can build wrappers around. Note that someone, naive and green, may be enticed to add a method to this interface akin to: WithQueryFilter(*types.QueryFilter) Logger This is a fool's errand, which would introduce a disallowed import cycle.

func EnsureLogger

func EnsureLogger(logger Logger) Logger

EnsureLogger guarantees that a zerologLogger is available.

func NewNoopLogger

func NewNoopLogger() Logger

NewNoopLogger provides our noop zerologLogger to dependency managers.

func NewZerologLogger

func NewZerologLogger() Logger

NewZerologLogger builds a new zerologLogger.

func ProvideLogger

func ProvideLogger(cfg Config) Logger

ProvideLogger builds a Logger according to the provided config.

type RequestIDFunc

type RequestIDFunc func(*http.Request) string

RequestIDFunc fetches a string ID from a request.

Jump to

Keyboard shortcuts

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