Documentation ¶
Overview ¶
Package log provides a generic interface around loggers.
The log package must be used in conjunction with a logger in contrib package.
Index ¶
- func Debug(args ...interface{})
- func Debugf(format string, args ...interface{})
- func Error(args ...interface{})
- func Errorf(format string, args ...interface{})
- func Fatal(args ...interface{})
- func Fatalf(format string, args ...interface{})
- func Info(args ...interface{})
- func Infof(format string, args ...interface{})
- func Panic(args ...interface{})
- func Panicf(format string, args ...interface{})
- func Printf(format string, args ...interface{})
- func Set(logger Logger)
- func ToContext(ctx context.Context) context.Context
- func Trace(args ...interface{})
- func Tracef(format string, args ...interface{})
- func Warn(args ...interface{})
- func Warnf(format string, args ...interface{})
- type Fields
- type Logger
- type Noop
- func (n Noop) Debug(args ...interface{})
- func (n Noop) Debugf(format string, args ...interface{})
- func (n Noop) Error(args ...interface{})
- func (n Noop) Errorf(format string, args ...interface{})
- func (n Noop) Fatal(args ...interface{})
- func (n Noop) Fatalf(format string, args ...interface{})
- func (n Noop) Fields() Fields
- func (n Noop) FromContext(ctx context.Context) Logger
- func (n Noop) Info(args ...interface{})
- func (n Noop) Infof(format string, args ...interface{})
- func (n Noop) Output() io.Writer
- func (n Noop) Panic(args ...interface{})
- func (n Noop) Panicf(format string, args ...interface{})
- func (n Noop) Printf(format string, args ...interface{})
- func (n Noop) ToContext(ctx context.Context) context.Context
- func (n Noop) Trace(args ...interface{})
- func (n Noop) Tracef(format string, args ...interface{})
- func (n Noop) Warn(args ...interface{})
- func (n Noop) Warnf(format string, args ...interface{})
- func (n Noop) WithError(err error) Logger
- func (n Noop) WithField(key string, value interface{}) Logger
- func (n Noop) WithFields(keyValues map[string]interface{}) Logger
- func (n Noop) WithTypeOf(obj interface{}) Logger
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Debugf ¶
func Debugf(format string, args ...interface{})
Debugf logs a templated message at debug level.
For templating details see implementation doc.
func Errorf ¶
func Errorf(format string, args ...interface{})
Errorf logs a templated message at error level.
For templating details see implementation doc.
func Fatal ¶
func Fatal(args ...interface{})
Fatal is equivalent to Print() followed by a call to os.Exit(1).
func Fatalf ¶
func Fatalf(format string, args ...interface{})
Fatalf is equivalent to Printf() followed by a call to os.Exit(1).
func Infof ¶
func Infof(format string, args ...interface{})
Infof logs a templated message at info level.
For templating details see implementation doc.
func Panic ¶
func Panic(args ...interface{})
Panic is equivalent to Print() followed by a call to panic().
func Panicf ¶
func Panicf(format string, args ...interface{})
Panicf is equivalent to Printf() followed by a call to panic().
func Printf ¶
func Printf(format string, args ...interface{})
Printf logs a templated message.
For templating details see implementation doc.
func ToContext ¶
Example ¶
bar := func(ctx context.Context) { logger := log.FromContext(ctx) logger = logger.WithField("bar_field", "example") logger.Infof("%s method.", "bar") } foo := func(ctx context.Context) { logger := log.FromContext(ctx) logger = logger.WithField("foo_field", "example") logger.Infof("%s method.", "foo") ctx = logger.ToContext(ctx) bar(ctx) } withoutContext := func() { log.Info("withoutContext method") } ctx := context.Background() log.Set(logrus.NewLogger( logrus.WithFormatter(text.New(text.WithDisableTimestamp(true))), ).WithField("main_field", "example")) ctx = log.ToContext(ctx) foo(ctx) withoutContext()
Output: level=info msg="foo method." foo_field=example main_field=example level=info msg="bar method." bar_field=example foo_field=example main_field=example level=info msg="withoutContext method" main_field=example
Types ¶
type Fields ¶
type Fields map[string]interface{}
Fields to pass when we want to call WithFields for structured logging.
type Logger ¶
type Logger interface { Printf(format string, args ...interface{}) Tracef(format string, args ...interface{}) Trace(args ...interface{}) Debugf(format string, args ...interface{}) Debug(args ...interface{}) Infof(format string, args ...interface{}) Info(args ...interface{}) Warnf(format string, args ...interface{}) Warn(args ...interface{}) Errorf(format string, args ...interface{}) Error(args ...interface{}) Fatalf(format string, args ...interface{}) Fatal(args ...interface{}) Panicf(format string, args ...interface{}) Panic(args ...interface{}) WithFields(keyValues map[string]interface{}) Logger WithField(key string, value interface{}) Logger WithError(err error) Logger WithTypeOf(obj interface{}) Logger ToContext(ctx context.Context) context.Context FromContext(ctx context.Context) Logger Output() io.Writer Fields() Fields }
Logger is our contract for the logger.
func FromContext ¶
FromContext calls concrete Logger.FromContext().
Example ¶
bar := func(ctx context.Context) { logger := log.FromContext(ctx) logger = logger.WithField("bar_field", "example") logger.Infof("%s method.", "bar") } foo := func(ctx context.Context) { logger := log.FromContext(ctx) logger = logger.WithField("foo_field", "example") logger.Infof("%s method.", "foo") ctx = logger.ToContext(ctx) bar(ctx) } withoutContext := func() { log.Info("withoutContext method") } ctx := context.Background() log.Set(logrus.NewLogger( logrus.WithFormatter(text.New(text.WithDisableTimestamp(true))), ).WithField("main_field", "example")) ctx = log.ToContext(ctx) foo(ctx) withoutContext()
Output: level=info msg="foo method." foo_field=example main_field=example level=info msg="bar method." bar_field=example foo_field=example main_field=example level=info msg="withoutContext method" main_field=example
func WithFields ¶
WithFields adds fields to logger.
func WithTypeOf ¶
func WithTypeOf(obj interface{}) Logger
WithTypeOf adds type information to logger.
type Noop ¶
type Noop struct{}
Noop is a dummy implementation of Logger