micro/logger/logger.go

55 lines
1.5 KiB
Go
Raw Permalink Normal View History

// Package logger provides a log interface
package logger
import (
"context"
)
type ContextAttrFunc func(ctx context.Context) []interface{}
var DefaultContextAttrFuncs []ContextAttrFunc
var (
// DefaultLogger variable
DefaultLogger Logger = NewLogger()
// DefaultLevel used by logger
DefaultLevel = InfoLevel
)
// Logger is a generic logging interface
type Logger interface {
2020-02-07 00:36:33 +03:00
// Init initialises options
Init(opts ...Option) error
// Clone create logger copy with new options
Clone(opts ...Option) Logger
// V compare provided verbosity level with current log level
V(level Level) bool
// Level sets the log level for logger
Level(level Level)
// The Logger options
Options() Options
// Fields set fields to always be logged with keyval pairs
Fields(fields ...interface{}) Logger
// Info level message
Info(ctx context.Context, msg string, args ...interface{})
// Trace level message
Trace(ctx context.Context, msg string, args ...interface{})
// Debug level message
Debug(ctx context.Context, msg string, args ...interface{})
// Warn level message
Warn(ctx context.Context, msg string, args ...interface{})
// Error level message
Error(ctx context.Context, msg string, args ...interface{})
// Fatal level message
Fatal(ctx context.Context, msg string, args ...interface{})
// Log logs message with needed level
Log(ctx context.Context, level Level, msg string, args ...interface{})
// Name returns broker instance name
Name() string
// String returns the type of logger
2020-02-07 00:36:33 +03:00
String() string
}
// Field contains keyval pair
type Field interface{}