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).

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.

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

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