zap

package
v0.3.0 Latest Latest
Warning

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

Go to latest
Published: Oct 10, 2019 License: Apache-2.0 Imports: 12 Imported by: 5,806

Documentation

Overview

Package zap contains helpers for setting up a new logr.Logger instance using the Zap logging framework.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Logger

func Logger(development bool) logr.Logger

Logger is a Logger implementation. If development is true, a Zap development config will be used (stacktraces on warnings, no sampling), otherwise a Zap production config will be used (stacktraces on errors, sampling).

Deprecated, use New() and the functional opts pattern instead:

New(func(o *Options){
   o.Development: development,
})

func LoggerTo

func LoggerTo(destWriter io.Writer, development bool) logr.Logger

LoggerTo returns a new Logger implementation using Zap which logs to the given destination, instead of stderr. It otherwise behaves like ZapLogger.

Deprecated, use New() and the functional opts pattern instead:

New(func(o *Options){
   o.Development: development,
   o.DestWriter: writer,
})

func New added in v0.2.1

func New(opts ...Opts) logr.Logger

New returns a brand new Logger configured with Opts. It uses KubeAwareEncoder which adds Type information and Namespace/Name to the log.

func NewRaw added in v0.2.1

func NewRaw(opts ...Opts) *zap.Logger

NewRaw returns a new zap.Logger configured with the passed Opts or their defaults. It uses KubeAwareEncoder which adds Type information and Namespace/Name to the log.

func RawLoggerTo

func RawLoggerTo(destWriter io.Writer, development bool, opts ...zap.Option) *zap.Logger

RawLoggerTo returns a new zap.Logger configured with KubeAwareEncoder which logs to a given destination

Deprecated, use NewRaw() and the functional opts pattern instead:

NewRaw(func(o *Options){
   o.Development: development,
})

Types

type KubeAwareEncoder

type KubeAwareEncoder struct {
	// Encoder is the zapcore.Encoder that this encoder delegates to
	zapcore.Encoder

	// Verbose controls whether or not the full object is printed.
	// If false, only name, namespace, api version, and kind are printed.
	// Otherwise, the full object is logged.
	Verbose bool
}

KubeAwareEncoder is a Kubernetes-aware Zap Encoder. Instead of trying to force Kubernetes objects to implement ObjectMarshaller, we just implement a wrapper around a normal ObjectMarshaller that checks for Kubernetes objects.

func (*KubeAwareEncoder) Clone

func (k *KubeAwareEncoder) Clone() zapcore.Encoder

Clone implements zapcore.Encoder

func (*KubeAwareEncoder) EncodeEntry

func (k *KubeAwareEncoder) EncodeEntry(entry zapcore.Entry, fields []zapcore.Field) (*buffer.Buffer, error)

EncodeEntry implements zapcore.Encoder

type Options added in v0.2.1

type Options struct {
	// If Development is true, a Zap development config will be used
	// (stacktraces on warnings, no sampling), otherwise a Zap production
	// config will be used (stacktraces on errors, sampling).
	Development bool
	// The encoder to use, defaults to console when Development is true
	// and JSON otherwise
	Encoder zapcore.Encoder
	// The destination to write to, defaults to os.Stderr
	DestWritter io.Writer
	// The level to use, defaults to Debug when Development is true and
	// Info otherwise
	Level *zap.AtomicLevel
	// StacktraceLevel is the level at and above which stacktraces will
	// be recorded for all messages. Defaults to Warn when Development
	// is true and Error otherwise
	StacktraceLevel *zap.AtomicLevel
	// Raw zap.Options to configure on the underlying zap logger
	ZapOpts []zap.Option
}

Options contains all possible settings

type Opts added in v0.2.1

type Opts func(*Options)

Opts allows to manipulate Options

Jump to

Keyboard shortcuts

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