...

Package logging

import "github.com/aws/smithy-go/logging"
Overview
Index

Overview ▾

type Classification

Classification is the type of the log entry's classification name.

type Classification string

Set of standard classifications that can be used by clients and middleware

const (
    Warn  Classification = "WARN"
    Debug Classification = "DEBUG"
)

type ContextLogger

ContextLogger is an optional interface a Logger implementation may expose that provides the ability to create context aware log entries.

type ContextLogger interface {
    WithContext(context.Context) Logger
}

type Logger

Logger is an interface for logging entries at certain classifications.

type Logger interface {
    // Logf is expected to support the standard fmt package "verbs".
    Logf(classification Classification, format string, v ...interface{})
}

func WithContext

func WithContext(ctx context.Context, logger Logger) Logger

WithContext will pass the provided context to logger if it implements the ContextLogger interface and return the resulting logger. Otherwise the logger will be returned as is. As a special case if a nil logger is provided, a Nop logger will be returned to the caller.

type LoggerFunc

LoggerFunc is a wrapper around a function to satisfy the Logger interface.

type LoggerFunc func(classification Classification, format string, v ...interface{})

func (LoggerFunc) Logf

func (f LoggerFunc) Logf(classification Classification, format string, v ...interface{})

Logf delegates the logging request to the wrapped function.

type Nop

Nop is a Logger implementation that simply does not perform any logging.

type Nop struct{}

func (Nop) Logf

func (n Nop) Logf(Classification, string, ...interface{})

Logf simply returns without performing any action

type StandardLogger

StandardLogger is a Logger implementation that wraps the standard library logger, and delegates logging to it's Printf method.

type StandardLogger struct {
    Logger *log.Logger
}

func NewStandardLogger

func NewStandardLogger(writer io.Writer) *StandardLogger

NewStandardLogger returns a new StandardLogger

func (StandardLogger) Logf

func (s StandardLogger) Logf(classification Classification, format string, v ...interface{})

Logf logs the given classification and message to the underlying logger.