stdr

package module
v0.4.0 Latest Latest
Warning

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

Go to latest
Published: Jan 23, 2021 License: Apache-2.0 Imports: 8 Imported by: 0

README

Minimal Go logging using logr and Go's standard library

This package implements the logr interface in terms of Go's standard log package(https://godoc.org/std/log).

This is a BETA grade implementation.

Documentation

Overview

Package strd implements github.com/go-logr/logr.Logger in terms of Go's standard log package.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func New

func New(std StdLogger) logr.Logger

New returns a logr.Logger which is implemented by Go's standard log package, or something like it. If std is nil, this will call functions in the log package instead.

Example: stdr.New(log.New(os.Stderr, "", log.LstdFlags)))

func NewWithOptions

func NewWithOptions(std StdLogger, opts Options) logr.Logger

NewWithOptions returns a logr.Logger which is implemented by Go's standard log package, or something like it. See New for details.

func SetVerbosity

func SetVerbosity(v int) int

SetVerbosity sets the global level against which all info logs will be compared. If this is greater than or equal to the "V" of the logger, the message will be logged. A higher value here means more logs will be written. The previous verbosity value is returned. This is not concurrent-safe - callers must be sure to call it from only one goroutine.

Types

type MessageClass added in v0.4.0

type MessageClass int
const (
	None MessageClass = iota
	All
	Info
	Error
)

type Options

type Options struct {
	// Depth biases the assumed number of call frames to the "true" caller.
	// This is useful when the calling code calls a function which then calls
	// stdr (e.g. a logging shim to another API).  Values less than zero will
	// be treated as zero.
	Depth int

	// LogCaller tells glogr to add a "caller" key to some or all log lines.
	// The glog implementation always logs this information in its per-line
	// header, whether this option is set or not.
	LogCaller MessageClass
}

type StdLogger

type StdLogger interface {
	// Output is the same as log.Output and log.Logger.Output.
	Output(calldepth int, logline string) error
}

StdLogger is the subset of the Go stdlib log.Logger API that is needed for this adapter.

type Underlier added in v0.3.0

type Underlier interface {
	GetUnderlying() StdLogger
}

Underlier exposes access to the underlying logging implementation. Since callers only have a logr.Logger, they have to know which implementation is in use, so this interface is less of an abstraction and more of way to test type conversion.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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