logger

package
v3.1.9 Latest Latest
Warning

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

Go to latest
Published: Jan 26, 2021 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Overview

Package logger provides a log interface

Index

Constants

This section is empty.

Variables

View Source
var (
	// DefaultLogger variable
	DefaultLogger Logger = NewLogger()
	// DefaultLogger level
	DefaultLevel Level = InfoLevel
)

Functions

func Debug

func Debug(ctx context.Context, args ...interface{})

Debug writes msg to default logger on debug level

func Debugf

func Debugf(ctx context.Context, msg string, args ...interface{})

Debugf writes formatted msg to default logger on debug level

func Error

func Error(ctx context.Context, args ...interface{})

Error writes msg to default logger on error level

func Errorf

func Errorf(ctx context.Context, msg string, args ...interface{})

Errorf writes formatted msg to default logger on error level

func Fatal

func Fatal(ctx context.Context, args ...interface{})

Fatal writes msg to default logger on fatal level

func Fatalf

func Fatalf(ctx context.Context, msg string, args ...interface{})

Fatalf writes formatted msg to default logger on fatal level

func Info

func Info(ctx context.Context, args ...interface{})

Info writes msg to default logger on info level

func Infof

func Infof(ctx context.Context, msg string, args ...interface{})

Infof writes formatted msg to default logger on info level

func Init

func Init(opts ...Option) error

Init initialize logger

func NewContext

func NewContext(ctx context.Context, l Logger) context.Context

NewContext stores logger into passed context

func Trace

func Trace(ctx context.Context, args ...interface{})

Trace writes msg to default logger on trace level

func Tracef

func Tracef(ctx context.Context, msg string, args ...interface{})

Tracef writes formatted msg to default logger on trace level

func V

func V(level Level) bool

V returns true if passed level enabled in default logger

func Warn

func Warn(ctx context.Context, args ...interface{})

Warn writes msg to default logger on warn level

func Warnf

func Warnf(ctx context.Context, msg string, args ...interface{})

Warnf writes formatted msg to default logger on warn level

Types

type Level

type Level int8

Level means logger level

const (
	// TraceLevel level. Designates finer-grained informational events than the Debug.
	TraceLevel Level = iota - 2
	// DebugLevel level. Usually only enabled when debugging. Very verbose logging.
	DebugLevel
	// InfoLevel level. General operational entries about what's going on inside the application.
	InfoLevel
	// WarnLevel level. Non-critical entries that deserve eyes.
	WarnLevel
	// ErrorLevel level. Used for errors that should definitely be noted.
	ErrorLevel
	// FatalLevel level. Logs and then calls `os.Exit(1)`. highest level of severity.
	FatalLevel
)

func GetLevel

func GetLevel(levelStr string) (Level, error)

GetLevel converts a level string into a logger Level value. returns an error if the input string does not match known values.

func (Level) Enabled

func (l Level) Enabled(lvl Level) bool

Enabled returns true if the given level is at or above this level.

func (Level) String

func (l Level) String() string

String returns logger level string representation

type Logger

type Logger interface {
	// Init initialises options
	Init(opts ...Option) error
	// V compare provided verbosity level with current log level
	V(level Level) bool
	// The Logger options
	Options() Options
	// Fields set fields to always be logged
	Fields(fields map[string]interface{}) Logger
	// Info level message
	Info(ctx context.Context, args ...interface{})
	// Trace level message
	Trace(ctx context.Context, args ...interface{})
	// Debug level message
	Debug(ctx context.Context, args ...interface{})
	// Warn level message
	Warn(ctx context.Context, args ...interface{})
	// Error level message
	Error(ctx context.Context, args ...interface{})
	// Fatal level message
	Fatal(ctx context.Context, args ...interface{})
	// Infof level message
	Infof(ctx context.Context, msg string, args ...interface{})
	// Tracef level message
	Tracef(ctx context.Context, msg string, args ...interface{})
	// Debug level message
	Debugf(ctx context.Context, msg string, args ...interface{})
	// Warn level message
	Warnf(ctx context.Context, msg string, args ...interface{})
	// Error level message
	Errorf(ctx context.Context, msg string, args ...interface{})
	// Fatal level message
	Fatalf(ctx context.Context, msg string, args ...interface{})
	// Log logs message with needed level
	Log(ctx context.Context, level Level, args ...interface{})
	// Logf logs message with needed level
	Logf(ctx context.Context, level Level, msg string, args ...interface{})
	// String returns the name of logger
	String() string
}

Logger is a generic logging interface

func Fields

func Fields(fields map[string]interface{}) Logger

Fields create logger with specific fields

func FromContext

func FromContext(ctx context.Context) (Logger, bool)

FromContext returns logger from passed context

func NewLogger

func NewLogger(opts ...Option) Logger

NewLogger builds a new logger based on options

type Option

type Option func(*Options)

Option func

func SetOption

func SetOption(k, v interface{}) Option

SetOption returns a function to setup a context with given value

func WithCallerSkipCount

func WithCallerSkipCount(c int) Option

WithCallerSkipCount set frame count to skip

func WithContext

func WithContext(ctx context.Context) Option

WithContext set context

func WithFields

func WithFields(fields map[string]interface{}) Option

WithFields set default fields for the logger

func WithLevel

func WithLevel(level Level) Option

WithLevel set default level for the logger

func WithOutput

func WithOutput(out io.Writer) Option

WithOutput set default output writer for the logger

type Options

type Options struct {
	// The logging level the logger should log at. default is `InfoLevel`
	Level Level
	// fields to always be logged
	Fields map[string]interface{}
	// It's common to set this to a file, or leave it default which is `os.Stderr`
	Out io.Writer
	// Caller skip frame count for file:line info
	CallerSkipCount int
	// Alternative options
	Context context.Context
}

Options holds logger options

func NewOptions

func NewOptions(opts ...Option) Options

NewOptions creates new options struct

Jump to

Keyboard shortcuts

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