36 lines
1.1 KiB
Go
36 lines
1.1 KiB
Go
package context
|
|
|
|
import (
|
|
"context"
|
|
"io"
|
|
"io/ioutil"
|
|
|
|
"github.com/containerd/containerd/log"
|
|
"github.com/sirupsen/logrus"
|
|
)
|
|
|
|
// WithLogger returns a new context with the provided logger.
|
|
// This method wraps github.com/containerd/containerd/log.WithLogger()
|
|
func WithLogger(ctx context.Context, logger *logrus.Entry) context.Context {
|
|
return log.WithLogger(ctx, logger)
|
|
}
|
|
|
|
// WithLoggerFromWriter returns a new context with the logger, writting to the provided logger.
|
|
func WithLoggerFromWriter(ctx context.Context, writer io.Writer) context.Context {
|
|
logger := logrus.New()
|
|
logger.Out = writer
|
|
entry := logrus.NewEntry(logger)
|
|
return WithLogger(ctx, entry)
|
|
}
|
|
|
|
// WithLoggerDiscarded returns a new context with the logger, writting to nothing.
|
|
func WithLoggerDiscarded(ctx context.Context) context.Context {
|
|
return WithLoggerFromWriter(ctx, ioutil.Discard)
|
|
}
|
|
|
|
// GetLogger retrieves the current logger from the context.
|
|
// This method wraps github.com/containerd/containerd/log.GetLogger()
|
|
func GetLogger(ctx context.Context) *logrus.Entry {
|
|
return log.GetLogger(ctx)
|
|
}
|