log

package module
v0.0.0-...-667e50d Latest Latest
Warning

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

Go to latest
Published: Jul 25, 2016 License: MIT Imports: 6 Imported by: 0

README

log

Package log implements a simple structured logging API inspired by apex/log, designed with centralization and log levels in mind. Some code from apex/log was used for the initial implementation.

The primary difference between the two is that each logger has its own level and inherits the level from its parent.

Badges

GoDoc

Documentation

Index

Constants

This section is empty.

Variables

View Source
var Log = &Logger{
	Level: InfoLevel,
}

Log is singleton commonly used as the root logger.

Functions

func Debug

func Debug(msg string)

Debug level message.

func Debugf

func Debugf(msg string, v ...interface{})

Debugf level formatted message.

func Error

func Error(msg string)

Error level message.

func Errorf

func Errorf(msg string, v ...interface{})

Errorf level formatted message.

func Fatal

func Fatal(msg string)

Fatal level message, followed by an exit.

func Fatalf

func Fatalf(msg string, v ...interface{})

Fatalf level formatted message, followed by an exit.

func Info

func Info(msg string)

Info level message.

func Infof

func Infof(msg string, v ...interface{})

Infof level formatted message.

func SetHandler

func SetHandler(h Handler)

SetHandler sets the handler. This is not thread-safe.

func SetLevel

func SetLevel(level Level)

SetLevel sets the log level. This is not thread-safe.

func Warn

func Warn(msg string)

Warn level message.

func Warnf

func Warnf(msg string, v ...interface{})

Warnf level formatted message.

Types

type Entry

type Entry struct {
	Fields    Fields    `json:"fields"`
	Level     Level     `json:"level"`
	Message   string    `json:"message"`
	Timestamp time.Time `json:"timestamp"`
}

Entry represents a single log entry.

type Fielder

type Fielder interface {
	Fields() Fields
}

Fielder is an interface for providing fields to custom types.

type Fields

type Fields map[string]interface{}

Fields represents a map of entry level data used for structured logging.

func (Fields) Fields

func (f Fields) Fields() Fields

Fields implements Fielder.

type Handler

type Handler interface {
	HandleLog(e *Entry) error
}

Handler is used to handle log events, outputting them to stdio or sending them to remote services. See the "handlers" directory for implementations.

It is left up to Handlers to implement thread-safety.

type HandlerFunc

type HandlerFunc func(*Entry) error

The HandlerFunc type is an adapter to allow the use of ordinary functions as log handlers. If f is a function with the appropriate signature, HandlerFunc(f) is a Handler object that calls f.

func (HandlerFunc) HandleLog

func (f HandlerFunc) HandleLog(e *Entry) error

HandleLog calls f(e).

type Level

type Level int

Level of severity.

const (
	UnsetLevel Level = iota
	DebugLevel
	InfoLevel
	WarnLevel
	ErrorLevel
	FatalLevel
)

Log levels.

func ParseLevel

func ParseLevel(s string) (Level, error)

ParseLevel parses level string.

func (Level) MarshalJSON

func (l Level) MarshalJSON() ([]byte, error)

MarshalJSON returns the level string.

func (Level) MarshalText

func (l Level) MarshalText() ([]byte, error)

MarshalText marshals the level to a string.

func (Level) String

func (l Level) String() string

String implements io.Stringer.

func (*Level) UnmarshalJSON

func (l *Level) UnmarshalJSON(data []byte) error

UnmarshalJSON returns the level from the string.

func (*Level) UnmarshalText

func (l *Level) UnmarshalText(text []byte) error

UnmarshalText returns a level from a string.

type Logger

type Logger struct {
	Level   Level
	Handler Handler
	// contains filtered or unexported fields
}

Logger represents a logger with configurable Level and Handler.

func New

func New(h Handler) *Logger

New returns a new logger at the default InfoLevel with the handler.

func WithError

func WithError(err error) *Logger

WithError returns a new logger with the "error" set to `err`.

func WithField

func WithField(key string, value interface{}) *Logger

WithField returns a new logger with the `key` and `value` set.

func WithFields

func WithFields(fields Fields) *Logger

WithFields returns a new logger with `fields` set.

func WithLevel

func WithLevel(level Level) *Logger

WithLevel returns a new logger with `level` set.

func (*Logger) Debug

func (l *Logger) Debug(msg string)

Debug level message.

func (*Logger) Debugf

func (l *Logger) Debugf(msg string, v ...interface{})

Debugf level formatted message.

func (*Logger) Error

func (l *Logger) Error(msg string)

Error level message.

func (*Logger) Errorf

func (l *Logger) Errorf(msg string, v ...interface{})

Errorf level formatted message.

func (*Logger) Fatal

func (l *Logger) Fatal(msg string)

Fatal level message, followed by an exit.

func (*Logger) Fatalf

func (l *Logger) Fatalf(msg string, v ...interface{})

Fatalf level formatted message, followed by an exit.

func (*Logger) Info

func (l *Logger) Info(msg string)

Info level message.

func (*Logger) Infof

func (l *Logger) Infof(msg string, v ...interface{})

Infof level formatted message.

func (*Logger) Log

func (l *Logger) Log(level Level, msg string)

Log logs a message at the specified level.

func (*Logger) Logf

func (l *Logger) Logf(level Level, msg string, v ...interface{})

Logf logs a formatted message at the specified level.

func (*Logger) Warn

func (l *Logger) Warn(msg string)

Warn level message.

func (*Logger) Warnf

func (l *Logger) Warnf(msg string, v ...interface{})

Warnf level formatted message.

func (*Logger) WithError

func (l *Logger) WithError(err error) *Logger

WithError returns a new logger with the "error" set to `err`.

func (*Logger) WithField

func (l *Logger) WithField(key string, value interface{}) *Logger

WithField returns a new logger with the `key` and `value` set.

func (*Logger) WithFields

func (l *Logger) WithFields(fields Fields) *Logger

WithFields returns a new logger with `fields` set.

func (*Logger) WithLevel

func (l *Logger) WithLevel(level Level) *Logger

WithLevel returns a new logger with `level` set.

Directories

Path Synopsis
handlers
discard
Package discard implements a no-op handler useful for benchmarks and tests.
Package discard implements a no-op handler useful for benchmarks and tests.
json
Package json implements a JSON handler.
Package json implements a JSON handler.
text
Package text implements a development-friendly textual handler.
Package text implements a development-friendly textual handler.

Jump to

Keyboard shortcuts

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