log

package
v0.0.0-...-dc23390 Latest Latest
Warning

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

Go to latest
Published: Dec 23, 2018 License: BSD-3-Clause Imports: 0 Imported by: 0

Documentation

Overview

Package log provides a logger interface so that logging in gooseberry is pluggable; gooseberry provides a wrapper for https://go.uber.org/zap that implements said interface. See package log/zap.

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type LeveledLogger

type LeveledLogger interface {
	// IsDebugEnabled checks whether or not debug logging is enabled.
	// Useful to check before logging a message that requires preprocessing.
	IsDebugEnabled() bool

	// Debug logs a debug message.
	// It accepts varargs of alternating key and value parameters.
	Debug(message string, args ...interface{})

	// Info logs a informational message.
	// It accepts varargs of alternating key and value parameters.
	Info(message string, args ...interface{})

	// Warn logs a warning message.
	// It accepts varargs of alternating key and value parameters.
	Warn(message string, args ...interface{})

	// Error logs an error message.
	// It accepts varargs of alternating key and value parameters.
	Error(message string, args ...interface{})

	// Sync flushes the logger.
	Sync() error
}

LeveledLogger provides a logging interface that supports structured logging. For example:

logger.Info("Found an answer.", "answer", 42)
logger.Debug("message", "key", value, "another key", anotherValue)
Example (WithPrefix)
logger := NewPrefixedLeveledLogger(&testutil.Logger{InDebugMode: true}, "prefix:")
fmt.Println("IsDebugEnabled:", logger.IsDebugEnabled())
logger.Debug("message", "answer", 42)
logger.Info("message", "answer", 42)
logger.Warn("message", "answer", 42)
logger.Error("message", "answer", 42)
Output:

IsDebugEnabled: true
[Debug] prefix:message: [answer 42]
[Info] prefix:message: [answer 42]
[Warn] prefix:message: [answer 42]
[Error] prefix:message: [answer 42]

func NewPrefixedLeveledLogger

func NewPrefixedLeveledLogger(logger LeveledLogger, prefix string) LeveledLogger

NewPrefixedLeveledLogger prepends a prefix to log messages logged by the specified logger.

type NoOpLogger

type NoOpLogger struct{}

NoOpLogger provides a NOOP logger (the default logging behavior).

Example
logger := &NoOpLogger{}
fmt.Println("IsDebugEnabled:", logger.IsDebugEnabled())
logger.Debug("Debug", "answer", 42)
logger.Info("Info", "answer", 42)
logger.Warn("Warn", "answer", 42)
logger.Error("Error", "answer", 42)
Output:

IsDebugEnabled: false

func (*NoOpLogger) Debug

func (*NoOpLogger) Debug(string, ...interface{})

Debug is a NOOP.

func (*NoOpLogger) Error

func (*NoOpLogger) Error(string, ...interface{})

Error is a NOOP.

func (*NoOpLogger) Info

func (*NoOpLogger) Info(string, ...interface{})

Info is a NOOP.

func (*NoOpLogger) IsDebugEnabled

func (*NoOpLogger) IsDebugEnabled() bool

IsDebugEnabled returns false.

func (*NoOpLogger) Sync

func (*NoOpLogger) Sync() error

Sync is a NOOP.

func (*NoOpLogger) Warn

func (*NoOpLogger) Warn(string, ...interface{})

Warn is a NOOP.

Directories

Path Synopsis
Package zap provides a wrapper for https://go.uber.org/zap that implements the log.LeveledLogger interface and adds convenience features to logging with zap.
Package zap provides a wrapper for https://go.uber.org/zap that implements the log.LeveledLogger interface and adds convenience features to logging with zap.

Jump to

Keyboard shortcuts

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