logging

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Nov 7, 2024 License: BSD-3-Clause Imports: 13 Imported by: 3

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// Discard is a mock WriterCloser that drops all writes and close requests
	Discard io.WriteCloser = discard{}
)
View Source
var ErrUnknownLevel = errors.New("unknown log level")

Functions

func UserString

func UserString(key, val string) zap.Field

UserString constructs a field with the given key and the value stripped of newlines. The value is sanitized lazily.

func UserStrings

func UserStrings(key string, val []string) zap.Field

UserStrings constructs a field with the given key and the values stripped of newlines. The values are sanitized lazily.

Types

type Color

type Color string
const (
	Black       Color = "\033[0;30m"
	DarkGray    Color = "\033[1;30m"
	Red         Color = "\033[0;31m"
	LightRed    Color = "\033[1;31m"
	Green       Color = "\033[0;32m"
	LightGreen  Color = "\033[1;32m"
	Orange      Color = "\033[0;33m"
	Yellow      Color = "\033[1;33m"
	Blue        Color = "\033[0;34m"
	LightBlue   Color = "\033[1;34m"
	Purple      Color = "\033[0;35m"
	LightPurple Color = "\033[1;35m"
	Cyan        Color = "\033[0;36m"
	LightCyan   Color = "\033[1;36m"
	LightGray   Color = "\033[0;37m"
	White       Color = "\033[1;37m"

	Reset   Color = "\033[0;0m"
	Bold    Color = "\033[;1m"
	Reverse Color = "\033[;7m"
)

Colors

func (Color) Wrap

func (lc Color) Wrap(text string) string

type Config

type Config struct {
	RotatingWriterConfig
	DisableWriterDisplaying bool   `json:"disableWriterDisplaying"`
	LogLevel                Level  `json:"logLevel"`
	DisplayLevel            Level  `json:"displayLevel"`
	LogFormat               Format `json:"logFormat"`
	MsgPrefix               string `json:"-"`
	LoggerName              string `json:"-"`
}

Config defines the configuration of a logger

type Factory

type Factory interface {
	// Make creates a new logger with name [name]
	Make(name string) (Logger, error)

	// MakeChain creates a new logger to log the events of chain [chainID]
	MakeChain(chainID string) (Logger, error)

	// SetLogLevels sets log levels for all loggers in factory with given logger name, level pairs.
	SetLogLevel(name string, level Level) error

	// SetDisplayLevels sets log display levels for all loggers in factory with given logger name, level pairs.
	SetDisplayLevel(name string, level Level) error

	// GetLogLevels returns all log levels in factory as name, level pairs
	GetLogLevel(name string) (Level, error)

	// GetDisplayLevels returns all log display levels in factory as name, level pairs
	GetDisplayLevel(name string) (Level, error)

	// GetLoggerNames returns the names of all logs created by this factory
	GetLoggerNames() []string

	// Close stops and clears all of a Factory's instantiated loggers
	Close()
}

Factory creates new instances of different types of Logger

func NewFactory

func NewFactory(config Config) Factory

NewFactory returns a new instance of a Factory producing loggers configured with the values set in the [config] parameter

type Format

type Format int

Highlight mode to apply to displayed logs

const (
	Plain Format = iota
	Colors
	JSON
)

Format modes available

func ToFormat

func ToFormat(h string, fd uintptr) (Format, error)

ToFormat chooses a highlighting mode

func (Format) ConsoleEncoder

func (f Format) ConsoleEncoder() zapcore.Encoder

func (Format) FileEncoder

func (f Format) FileEncoder() zapcore.Encoder

func (Format) MarshalJSON

func (f Format) MarshalJSON() ([]byte, error)

func (Format) WrapPrefix

func (f Format) WrapPrefix(prefix string) string

type Level

type Level zapcore.Level
const (
	Verbo Level = iota - 9
	Debug
	Trace
	Info
	Warn
	Error
	Fatal
	Off
)

func ToLevel

func ToLevel(l string) (Level, error)

Inverse of Level.String()

func (Level) LowerString

func (l Level) LowerString() string

func (Level) MarshalJSON

func (l Level) MarshalJSON() ([]byte, error)

func (Level) String

func (l Level) String() string

func (*Level) UnmarshalJSON

func (l *Level) UnmarshalJSON(b []byte) error

type Logger

type Logger interface {
	io.Writer // For logging pre-formatted messages

	// Log that a fatal error has occurred. The program should likely exit soon
	// after this is called
	Fatal(msg string, fields ...zap.Field)
	// Log that an error has occurred. The program should be able to recover
	// from this error
	Error(msg string, fields ...zap.Field)
	// Log that an event has occurred that may indicate a future error or
	// vulnerability
	Warn(msg string, fields ...zap.Field)
	// Log an event that may be useful for a user to see to measure the progress
	// of the protocol
	Info(msg string, fields ...zap.Field)
	// Log an event that may be useful for understanding the order of the
	// execution of the protocol
	Trace(msg string, fields ...zap.Field)
	// Log an event that may be useful for a programmer to see when debuging the
	// execution of the protocol
	Debug(msg string, fields ...zap.Field)
	// Log extremely detailed events that can be useful for inspecting every
	// aspect of the program
	Verbo(msg string, fields ...zap.Field)

	// SetLevel that this logger should log to
	SetLevel(level Level)
	// Enabled returns true if the given level is at or above this level.
	Enabled(lvl Level) bool

	// Recovers a panic, logs the error, and rethrows the panic.
	StopOnPanic()
	// If a function panics, this will log that panic and then re-panic ensuring
	// that the program logs the error before exiting.
	RecoverAndPanic(f func())

	// If a function panics, this will log that panic and then call the exit
	// function, ensuring that the program logs the error, recovers, and
	// executes the desired exit function
	RecoverAndExit(f, exit func())

	// Stop this logger and write back all meta-data.
	Stop()
}

Logger defines the interface that is used to keep a record of all events that happen to the program

func NewLogger

func NewLogger(prefix string, wrappedCores ...WrappedCore) Logger

New returns a new logger set up according to [config]

type NoLog

type NoLog struct{}

func (NoLog) Debug

func (NoLog) Debug(string, ...zap.Field)

func (NoLog) Enabled

func (NoLog) Enabled(Level) bool

func (NoLog) Error

func (NoLog) Error(string, ...zap.Field)

func (NoLog) Fatal

func (NoLog) Fatal(string, ...zap.Field)

func (NoLog) Info

func (NoLog) Info(string, ...zap.Field)

func (NoLog) RecoverAndExit

func (NoLog) RecoverAndExit(f, exit func())

func (NoLog) RecoverAndPanic

func (NoLog) RecoverAndPanic(f func())

func (NoLog) SetLevel

func (NoLog) SetLevel(Level)

func (NoLog) Stop

func (NoLog) Stop()

func (NoLog) StopOnPanic

func (NoLog) StopOnPanic()

func (NoLog) Trace

func (NoLog) Trace(string, ...zap.Field)

func (NoLog) Verbo

func (NoLog) Verbo(string, ...zap.Field)

func (NoLog) Warn

func (NoLog) Warn(string, ...zap.Field)

func (NoLog) Write

func (NoLog) Write(b []byte) (int, error)

type NoWarn

type NoWarn struct{ NoLog }

func (NoWarn) Error

func (NoWarn) Error(string, ...zap.Field)

func (NoWarn) Fatal

func (NoWarn) Fatal(string, ...zap.Field)

func (NoWarn) Warn

func (NoWarn) Warn(string, ...zap.Field)

type RotatingWriterConfig

type RotatingWriterConfig struct {
	MaxSize   int    `json:"maxSize"` // in megabytes
	MaxFiles  int    `json:"maxFiles"`
	MaxAge    int    `json:"maxAge"` // in days
	Directory string `json:"directory"`
	Compress  bool   `json:"compress"`
}

type WrappedCore

type WrappedCore struct {
	Core           zapcore.Core
	Writer         io.WriteCloser
	WriterDisabled bool
	AtomicLevel    zap.AtomicLevel
}

func NewWrappedCore

func NewWrappedCore(level Level, rw io.WriteCloser, encoder zapcore.Encoder) WrappedCore

Jump to

Keyboard shortcuts

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