log

package
v3.46.0 Latest Latest
Warning

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

Go to latest
Published: May 6, 2021 License: MIT Imports: 12 Imported by: 34

Documentation

Overview

Package log contains utilities for logging in a modular interface. This package can be used to wrap a third party library.

Index

Constants

View Source
const (
	LogOff   int = 0
	LogFatal int = 1
	LogError int = 2
	LogWarn  int = 3
	LogInfo  int = 4
	LogDebug int = 5
	LogTrace int = 6
	LogAll   int = 7
)

Logger level constants

Variables

View Source
var (
	ErrClientNil = errors.New("the client pointer was nil")
)

Errors used throughout the package.

Functions

func Spec added in v3.43.0

func Spec() docs.FieldSpecs

Spec returns a field spec for the logger configuration fields.

Types

type Config

type Config struct {
	Prefix       string            `json:"prefix" yaml:"prefix"`
	LogLevel     string            `json:"level" yaml:"level"`
	Format       string            `json:"format" yaml:"format"`
	AddTimeStamp bool              `json:"add_timestamp" yaml:"add_timestamp"`
	JSONFormat   bool              `json:"json_format" yaml:"json_format"`
	StaticFields map[string]string `json:"static_fields" yaml:"static_fields"`
}

Config holds configuration options for a logger object.

func NewConfig

func NewConfig() Config

NewConfig returns a config struct with the default values for each field.

func (Config) Sanitised added in v3.34.0

func (conf Config) Sanitised(removeDeprecated bool) (interface{}, error)

Sanitised returns a sanitised version of the config, meaning sections that aren't relevant to behaviour are removed. Also optionally removes deprecated fields.

func (*Config) UnmarshalJSON

func (conf *Config) UnmarshalJSON(bytes []byte) error

UnmarshalJSON ensures that when parsing configs that are in a slice the default values are still applied.

func (*Config) UnmarshalYAML

func (conf *Config) UnmarshalYAML(unmarshal func(interface{}) error) error

UnmarshalYAML ensures that when parsing configs that are in a slice the default values are still applied.

type Logger

type Logger struct {
	// contains filtered or unexported fields
}

Logger is an object with support for levelled logging and modular components.

func (*Logger) Debugf

func (l *Logger) Debugf(format string, v ...interface{})

Debugf prints a debug message to the console.

func (*Logger) Debugln

func (l *Logger) Debugln(message string)

Debugln prints a debug message to the console.

func (*Logger) Errorf

func (l *Logger) Errorf(format string, v ...interface{})

Errorf prints an error message to the console.

func (*Logger) Errorln

func (l *Logger) Errorln(message string)

Errorln prints an error message to the console.

func (*Logger) Fatalf

func (l *Logger) Fatalf(format string, v ...interface{})

Fatalf prints a fatal message to the console. Does NOT cause panic.

func (*Logger) Fatalln

func (l *Logger) Fatalln(message string)

Fatalln prints a fatal message to the console. Does NOT cause panic.

func (*Logger) Infof

func (l *Logger) Infof(format string, v ...interface{})

Infof prints an information message to the console.

func (*Logger) Infoln

func (l *Logger) Infoln(message string)

Infoln prints an information message to the console.

func (*Logger) NewModule

func (l *Logger) NewModule(name string) Modular

NewModule creates a new logger object from the previous, using the same configuration, but adds an extra prefix to represent a submodule.

func (*Logger) Tracef

func (l *Logger) Tracef(format string, v ...interface{})

Tracef prints a trace message to the console.

func (*Logger) Traceln

func (l *Logger) Traceln(message string)

Traceln prints a trace message to the console.

func (*Logger) Warnf

func (l *Logger) Warnf(format string, v ...interface{})

Warnf prints a warning message to the console.

func (*Logger) Warnln

func (l *Logger) Warnln(message string)

Warnln prints a warning message to the console.

func (*Logger) With added in v3.40.0

func (l *Logger) With(args ...interface{}) Modular

With returns a logger with new fields.

func (*Logger) WithFields

func (l *Logger) WithFields(inboundFields map[string]string) Modular

WithFields returns a logger with new fields added to the JSON formatted output.

type Modular

type Modular interface {
	NewModule(prefix string) Modular

	WithFields(fields map[string]string) Modular

	Fatalf(format string, v ...interface{})
	Errorf(format string, v ...interface{})
	Warnf(format string, v ...interface{})
	Infof(format string, v ...interface{})
	Debugf(format string, v ...interface{})
	Tracef(format string, v ...interface{})

	Fatalln(message string)
	Errorln(message string)
	Warnln(message string)
	Infoln(message string)
	Debugln(message string)
	Traceln(message string)
}

Modular is a log printer that allows you to branch new modules.

func New

func New(stream io.Writer, config Config) Modular

New creates and returns a new logger object. TODO: V4 replace this with NewV2

func NewV2 added in v3.34.0

func NewV2(stream io.Writer, config Config) (Modular, error)

NewV2 returns a new logger from a config, or returns an error if the config is invalid.

func Noop

func Noop() Modular

Noop creates and returns a new logger object that writes nothing.

func With added in v3.40.0

func With(l Modular, args ...interface{}) (Modular, error)

With attempts to cast the Modular implementation into an interface that implements With, and if successful returns the result.

func WithFields

func WithFields(l Modular, fields map[string]string) Modular

WithFields attempts to cast the Modular implementation into an interface that implements WithFields, and if successful returns the result.

func Wrap

func Wrap(l PrintFormatter) Modular

Wrap a PrintFormatter with a log.Modular implementation. Log level is set to INFO, use WrapAtLevel to set this explicitly.

func WrapAtLevel

func WrapAtLevel(l PrintFormatter, level int) Modular

WrapAtLevel wraps a PrintFormatter with a log.Modular implementation with an explicit log level.

type PrintFormatter

type PrintFormatter interface {
	Printf(format string, v ...interface{})
	Println(v ...interface{})
}

PrintFormatter is an interface implemented by standard loggers.

Jump to

Keyboard shortcuts

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