logging

package
v1.7.10 Latest Latest
Warning

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

Go to latest
Published: Aug 18, 2022 License: BSD-3-Clause Imports: 20 Imported by: 175

Documentation

Overview

Package logging is a generated GoMock package.

Index

Constants

This section is empty.

Variables

View Source
var (

	// DefaultLogDirectory is the default directory where logs are saved
	DefaultLogDirectory = fmt.Sprintf("%s/.%s/logs", homeDir, constants.AppName)

	// DefaultConfig provides a reasonable default logger configuration. It
	// should not be modified, it should be copied if changes are intended on
	// being made.
	DefaultConfig = Config{
		RotationInterval: 24 * time.Hour,
		FileSize:         8 * units.MiB,
		RotationSize:     7,
		FlushSize:        1,
		DisplayLevel:     Info,
		DisplayHighlight: Plain,
		LogLevel:         Debug,
		Directory:        DefaultLogDirectory,
	}
)

Functions

func Sanitize

func Sanitize(s string) string

func SanitizeArgs

func SanitizeArgs(a []interface{}) []interface{}

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 {
	RotationInterval            time.Duration `json:"rotationInterval"`
	FileSize                    int           `json:"fileSize"`
	RotationSize                int           `json:"rotationSize"`
	FlushSize                   int           `json:"flushSize"`
	DisableContextualDisplaying bool          `json:"disableContextualDisplaying"`
	DisableFlushOnWrite         bool          `json:"disableFlushOnWrite"`
	DisableWriterDisplaying     bool          `json:"disableWriterDisplaying"`
	Assertions                  bool          `json:"assertions"`
	LogLevel                    Level         `json:"logLevel"`
	DisplayLevel                Level         `json:"displayLevel"`
	DisplayHighlight            Highlight     `json:"displayHighlight"`
	Directory                   string        `json:"directory"`
	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)

	// MakeChainChild creates a new sublogger for a [name] module of a chain [chainId]
	MakeChainChild(chainID string, name 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 Highlight

type Highlight int

Highlight mode to apply to displayed logs

const (
	Plain Highlight = iota
	Colors
)

Highlighting modes available

func ToHighlight

func ToHighlight(h string, fd uintptr) (Highlight, error)

ToHighlight chooses a highlighting mode

func (*Highlight) MarshalJSON

func (h *Highlight) MarshalJSON() ([]byte, error)

type Level

type Level int
const (
	Off Level = iota
	Fatal
	Error
	Warn
	Info
	Trace
	Debug
	Verbo
)

func ToLevel

func ToLevel(l string) (Level, error)

Inverse of Level.String()

func (Level) AlignedString

func (l Level) AlignedString() string

String representation of this level as it will appear in log files and in logs displayed to screen. The returned value has length [alignedStringLen].

func (Level) Color

func (l Level) Color() Color

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 Log

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

func NewTestLog

func NewTestLog(config Config) (*Log, error)

func (*Log) AssertDeferredNoError

func (l *Log) AssertDeferredNoError(f func() error)

func (*Log) AssertDeferredTrue

func (l *Log) AssertDeferredTrue(f func() bool, format string, args ...interface{})

func (*Log) AssertNoError

func (l *Log) AssertNoError(err error)

func (*Log) AssertTrue

func (l *Log) AssertTrue(b bool, format string, args ...interface{})

func (*Log) Debug

func (l *Log) Debug(format string, args ...interface{})

func (*Log) Error

func (l *Log) Error(format string, args ...interface{})

func (*Log) Fatal

func (l *Log) Fatal(format string, args ...interface{})

func (*Log) GetDisplayLevel

func (l *Log) GetDisplayLevel() Level

func (*Log) GetLogLevel

func (l *Log) GetLogLevel() Level

func (*Log) Info

func (l *Log) Info(format string, args ...interface{})

func (*Log) RecoverAndExit

func (l *Log) RecoverAndExit(f, exit func())

func (*Log) RecoverAndPanic

func (l *Log) RecoverAndPanic(f func())

func (*Log) SetContextualDisplayingEnabled

func (l *Log) SetContextualDisplayingEnabled(enabled bool)

func (*Log) SetDisplayLevel

func (l *Log) SetDisplayLevel(lvl Level)

func (*Log) SetLogLevel

func (l *Log) SetLogLevel(lvl Level)

func (*Log) SetPrefix

func (l *Log) SetPrefix(prefix string)

func (*Log) Stop

func (l *Log) Stop()

func (*Log) StopOnPanic

func (l *Log) StopOnPanic()

func (*Log) Trace

func (l *Log) Trace(format string, args ...interface{})

func (*Log) Verbo

func (l *Log) Verbo(format string, args ...interface{})

func (*Log) Warn

func (l *Log) Warn(format string, args ...interface{})

func (*Log) Write

func (l *Log) Write(p []byte) (int, error)

type Logger

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

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

	// If assertions are enabled, will result in a panic if err is non-nil
	AssertNoError(err error)
	// If assertions are enabled, will result in a panic if b is false
	AssertTrue(b bool, format string, args ...interface{})
	// If assertions are enabled, the function will be called and will result in
	// a panic the returned value is non-nil
	AssertDeferredNoError(f func() error)
	// If assertions are enabled, the function will be called and will result in
	//  a panic the returned value is false
	AssertDeferredTrue(f func() bool, format string, args ...interface{})

	// 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())

	// Only events above or equal to the level set will be logged
	SetLogLevel(Level)
	// Only logged events above or equal to the level set will be logged
	SetDisplayLevel(Level)
	// Gets current LogLevel
	GetLogLevel() Level
	// Gets current DisplayLevel
	GetDisplayLevel() Level
	// Add a prefix to all logged messages
	SetPrefix(string)
	// Enable or disable the display of contextual information for logged events
	SetContextualDisplayingEnabled(bool)

	// 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

type MockLogger

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

MockLogger is a mock of Logger interface.

func NewMockLogger

func NewMockLogger(ctrl *gomock.Controller) *MockLogger

NewMockLogger creates a new mock instance.

func (*MockLogger) AssertDeferredNoError

func (m *MockLogger) AssertDeferredNoError(f func() error)

AssertDeferredNoError mocks base method.

func (*MockLogger) AssertDeferredTrue

func (m *MockLogger) AssertDeferredTrue(f func() bool, format string, args ...interface{})

AssertDeferredTrue mocks base method.

func (*MockLogger) AssertNoError

func (m *MockLogger) AssertNoError(err error)

AssertNoError mocks base method.

func (*MockLogger) AssertTrue

func (m *MockLogger) AssertTrue(b bool, format string, args ...interface{})

AssertTrue mocks base method.

func (*MockLogger) Debug

func (m *MockLogger) Debug(format string, args ...interface{})

Debug mocks base method.

func (*MockLogger) EXPECT

func (m *MockLogger) EXPECT() *MockLoggerMockRecorder

EXPECT returns an object that allows the caller to indicate expected use.

func (*MockLogger) Error

func (m *MockLogger) Error(format string, args ...interface{})

Error mocks base method.

func (*MockLogger) Fatal

func (m *MockLogger) Fatal(format string, args ...interface{})

Fatal mocks base method.

func (*MockLogger) GetDisplayLevel

func (m *MockLogger) GetDisplayLevel() Level

GetDisplayLevel mocks base method.

func (*MockLogger) GetLogLevel

func (m *MockLogger) GetLogLevel() Level

GetLogLevel mocks base method.

func (*MockLogger) Info

func (m *MockLogger) Info(format string, args ...interface{})

Info mocks base method.

func (*MockLogger) RecoverAndExit

func (m *MockLogger) RecoverAndExit(f, exit func())

RecoverAndExit mocks base method.

func (*MockLogger) RecoverAndPanic

func (m *MockLogger) RecoverAndPanic(f func())

RecoverAndPanic mocks base method.

func (*MockLogger) SetContextualDisplayingEnabled

func (m *MockLogger) SetContextualDisplayingEnabled(arg0 bool)

SetContextualDisplayingEnabled mocks base method.

func (*MockLogger) SetDisplayLevel

func (m *MockLogger) SetDisplayLevel(arg0 Level)

SetDisplayLevel mocks base method.

func (*MockLogger) SetLogLevel

func (m *MockLogger) SetLogLevel(arg0 Level)

SetLogLevel mocks base method.

func (*MockLogger) SetPrefix

func (m *MockLogger) SetPrefix(arg0 string)

SetPrefix mocks base method.

func (*MockLogger) Stop

func (m *MockLogger) Stop()

Stop mocks base method.

func (*MockLogger) StopOnPanic

func (m *MockLogger) StopOnPanic()

StopOnPanic mocks base method.

func (*MockLogger) Trace

func (m *MockLogger) Trace(format string, args ...interface{})

Trace mocks base method.

func (*MockLogger) Verbo

func (m *MockLogger) Verbo(format string, args ...interface{})

Verbo mocks base method.

func (*MockLogger) Warn

func (m *MockLogger) Warn(format string, args ...interface{})

Warn mocks base method.

func (*MockLogger) Write

func (m *MockLogger) Write(p []byte) (int, error)

Write mocks base method.

type MockLoggerMockRecorder

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

MockLoggerMockRecorder is the mock recorder for MockLogger.

func (*MockLoggerMockRecorder) AssertDeferredNoError

func (mr *MockLoggerMockRecorder) AssertDeferredNoError(f interface{}) *gomock.Call

AssertDeferredNoError indicates an expected call of AssertDeferredNoError.

func (*MockLoggerMockRecorder) AssertDeferredTrue

func (mr *MockLoggerMockRecorder) AssertDeferredTrue(f, format interface{}, args ...interface{}) *gomock.Call

AssertDeferredTrue indicates an expected call of AssertDeferredTrue.

func (*MockLoggerMockRecorder) AssertNoError

func (mr *MockLoggerMockRecorder) AssertNoError(err interface{}) *gomock.Call

AssertNoError indicates an expected call of AssertNoError.

func (*MockLoggerMockRecorder) AssertTrue

func (mr *MockLoggerMockRecorder) AssertTrue(b, format interface{}, args ...interface{}) *gomock.Call

AssertTrue indicates an expected call of AssertTrue.

func (*MockLoggerMockRecorder) Debug

func (mr *MockLoggerMockRecorder) Debug(format interface{}, args ...interface{}) *gomock.Call

Debug indicates an expected call of Debug.

func (*MockLoggerMockRecorder) Error

func (mr *MockLoggerMockRecorder) Error(format interface{}, args ...interface{}) *gomock.Call

Error indicates an expected call of Error.

func (*MockLoggerMockRecorder) Fatal

func (mr *MockLoggerMockRecorder) Fatal(format interface{}, args ...interface{}) *gomock.Call

Fatal indicates an expected call of Fatal.

func (*MockLoggerMockRecorder) GetDisplayLevel

func (mr *MockLoggerMockRecorder) GetDisplayLevel() *gomock.Call

GetDisplayLevel indicates an expected call of GetDisplayLevel.

func (*MockLoggerMockRecorder) GetLogLevel

func (mr *MockLoggerMockRecorder) GetLogLevel() *gomock.Call

GetLogLevel indicates an expected call of GetLogLevel.

func (*MockLoggerMockRecorder) Info

func (mr *MockLoggerMockRecorder) Info(format interface{}, args ...interface{}) *gomock.Call

Info indicates an expected call of Info.

func (*MockLoggerMockRecorder) RecoverAndExit

func (mr *MockLoggerMockRecorder) RecoverAndExit(f, exit interface{}) *gomock.Call

RecoverAndExit indicates an expected call of RecoverAndExit.

func (*MockLoggerMockRecorder) RecoverAndPanic

func (mr *MockLoggerMockRecorder) RecoverAndPanic(f interface{}) *gomock.Call

RecoverAndPanic indicates an expected call of RecoverAndPanic.

func (*MockLoggerMockRecorder) SetContextualDisplayingEnabled

func (mr *MockLoggerMockRecorder) SetContextualDisplayingEnabled(arg0 interface{}) *gomock.Call

SetContextualDisplayingEnabled indicates an expected call of SetContextualDisplayingEnabled.

func (*MockLoggerMockRecorder) SetDisplayLevel

func (mr *MockLoggerMockRecorder) SetDisplayLevel(arg0 interface{}) *gomock.Call

SetDisplayLevel indicates an expected call of SetDisplayLevel.

func (*MockLoggerMockRecorder) SetLogLevel

func (mr *MockLoggerMockRecorder) SetLogLevel(arg0 interface{}) *gomock.Call

SetLogLevel indicates an expected call of SetLogLevel.

func (*MockLoggerMockRecorder) SetPrefix

func (mr *MockLoggerMockRecorder) SetPrefix(arg0 interface{}) *gomock.Call

SetPrefix indicates an expected call of SetPrefix.

func (*MockLoggerMockRecorder) Stop

func (mr *MockLoggerMockRecorder) Stop() *gomock.Call

Stop indicates an expected call of Stop.

func (*MockLoggerMockRecorder) StopOnPanic

func (mr *MockLoggerMockRecorder) StopOnPanic() *gomock.Call

StopOnPanic indicates an expected call of StopOnPanic.

func (*MockLoggerMockRecorder) Trace

func (mr *MockLoggerMockRecorder) Trace(format interface{}, args ...interface{}) *gomock.Call

Trace indicates an expected call of Trace.

func (*MockLoggerMockRecorder) Verbo

func (mr *MockLoggerMockRecorder) Verbo(format interface{}, args ...interface{}) *gomock.Call

Verbo indicates an expected call of Verbo.

func (*MockLoggerMockRecorder) Warn

func (mr *MockLoggerMockRecorder) Warn(format interface{}, args ...interface{}) *gomock.Call

Warn indicates an expected call of Warn.

func (*MockLoggerMockRecorder) Write

func (mr *MockLoggerMockRecorder) Write(p interface{}) *gomock.Call

Write indicates an expected call of Write.

type MockRotatingWriter

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

MockRotatingWriter is a mock of RotatingWriter interface.

func NewMockRotatingWriter

func NewMockRotatingWriter(ctrl *gomock.Controller) *MockRotatingWriter

NewMockRotatingWriter creates a new mock instance.

func (*MockRotatingWriter) Close

func (m *MockRotatingWriter) Close() error

Close mocks base method.

func (*MockRotatingWriter) EXPECT

EXPECT returns an object that allows the caller to indicate expected use.

func (*MockRotatingWriter) Flush

func (m *MockRotatingWriter) Flush() error

Flush mocks base method.

func (*MockRotatingWriter) Initialize

func (m *MockRotatingWriter) Initialize(arg0 Config) (int, error)

Initialize mocks base method.

func (*MockRotatingWriter) Rotate

func (m *MockRotatingWriter) Rotate() error

Rotate mocks base method.

func (*MockRotatingWriter) Write

func (m *MockRotatingWriter) Write(b []byte) (int, error)

Write mocks base method.

func (*MockRotatingWriter) WriteString

func (m *MockRotatingWriter) WriteString(s string) (int, error)

WriteString mocks base method.

type MockRotatingWriterMockRecorder

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

MockRotatingWriterMockRecorder is the mock recorder for MockRotatingWriter.

func (*MockRotatingWriterMockRecorder) Close

Close indicates an expected call of Close.

func (*MockRotatingWriterMockRecorder) Flush

Flush indicates an expected call of Flush.

func (*MockRotatingWriterMockRecorder) Initialize

func (mr *MockRotatingWriterMockRecorder) Initialize(arg0 interface{}) *gomock.Call

Initialize indicates an expected call of Initialize.

func (*MockRotatingWriterMockRecorder) Rotate

Rotate indicates an expected call of Rotate.

func (*MockRotatingWriterMockRecorder) Write

func (mr *MockRotatingWriterMockRecorder) Write(b interface{}) *gomock.Call

Write indicates an expected call of Write.

func (*MockRotatingWriterMockRecorder) WriteString

func (mr *MockRotatingWriterMockRecorder) WriteString(s interface{}) *gomock.Call

WriteString indicates an expected call of WriteString.

type NoFactory

type NoFactory struct{}

func (NoFactory) Close

func (NoFactory) Close()

func (NoFactory) GetDisplayLevel

func (NoFactory) GetDisplayLevel(name string) (Level, error)

func (NoFactory) GetLogLevel

func (NoFactory) GetLogLevel(name string) (Level, error)

func (NoFactory) GetLoggerNames

func (NoFactory) GetLoggerNames() []string

func (NoFactory) Make

func (NoFactory) Make(string) (Logger, error)

func (NoFactory) MakeChain

func (NoFactory) MakeChain(string) (Logger, error)

func (NoFactory) MakeChainChild

func (NoFactory) MakeChainChild(string, string) (Logger, error)

func (NoFactory) SetDisplayLevel

func (NoFactory) SetDisplayLevel(name string, level Level) error

func (NoFactory) SetLogLevel

func (NoFactory) SetLogLevel(name string, level Level) error

type NoIOWriter

type NoIOWriter struct{}

NoIOWriter is a mock Writer that does not write to any underlying source

func (NoIOWriter) Close

func (NoIOWriter) Close() error

func (NoIOWriter) Flush

func (NoIOWriter) Flush() error

func (NoIOWriter) GetCurrentSize

func (NoIOWriter) GetCurrentSize() int

func (NoIOWriter) Initialize

func (NoIOWriter) Initialize(Config)

func (NoIOWriter) Rotate

func (NoIOWriter) Rotate() error

func (NoIOWriter) Write

func (NoIOWriter) Write(p []byte) (int, error)

func (NoIOWriter) WriteString

func (NoIOWriter) WriteString(s string) (int, error)

type NoLog

type NoLog struct{}

func (NoLog) AssertDeferredNoError

func (NoLog) AssertDeferredNoError(f func() error)

func (NoLog) AssertDeferredTrue

func (NoLog) AssertDeferredTrue(f func() bool, format string, args ...interface{})

func (NoLog) AssertNoError

func (NoLog) AssertNoError(error)

func (NoLog) AssertTrue

func (NoLog) AssertTrue(b bool, format string, args ...interface{})

func (NoLog) Debug

func (NoLog) Debug(format string, args ...interface{})

func (NoLog) Error

func (NoLog) Error(format string, args ...interface{})

func (NoLog) Fatal

func (NoLog) Fatal(format string, args ...interface{})

func (NoLog) GetDisplayLevel

func (NoLog) GetDisplayLevel() Level

func (NoLog) GetLogLevel

func (NoLog) GetLogLevel() Level

func (NoLog) Info

func (NoLog) Info(format string, args ...interface{})

func (NoLog) RecoverAndExit

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

func (NoLog) RecoverAndPanic

func (NoLog) RecoverAndPanic(f func())

func (NoLog) SetContextualDisplayingEnabled

func (NoLog) SetContextualDisplayingEnabled(bool)

func (NoLog) SetDisplayLevel

func (NoLog) SetDisplayLevel(Level)

func (NoLog) SetLogLevel

func (NoLog) SetLogLevel(Level)

func (NoLog) SetPrefix

func (NoLog) SetPrefix(string)

func (NoLog) Stop

func (NoLog) Stop()

func (NoLog) StopOnPanic

func (NoLog) StopOnPanic()

func (NoLog) Trace

func (NoLog) Trace(format string, args ...interface{})

func (NoLog) Verbo

func (NoLog) Verbo(format string, args ...interface{})

func (NoLog) Warn

func (NoLog) Warn(format string, args ...interface{})

func (NoLog) Write

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

type RotatingWriter

type RotatingWriter interface {
	// Creates the log file if it doesn't exist or resume writing to it if it does
	Initialize(Config)
	// Flushes the writer
	Flush() error
	// Writes [b] to the log file
	Write(b []byte) (int, error)
	// Writes [s] to the log file
	WriteString(s string) (int, error)
	// Closes the log file
	Close() error
	// GetCurrentSize returns the size of the current file being written to
	GetCurrentSize() int
	// Rotates the log files. Always keeps the current log in the same file.
	// Rotated log files are stored as by appending an integer to the log file name,
	// from 1 to the RotationSize defined in the configuration. 1 being the most
	// recently rotated log file.
	Rotate() error
}

RotatingWriter allows for rotating a stream writer

type RoutineID

type RoutineID struct{}

RoutineID can print the current goroutine ID

func (RoutineID) String

func (RoutineID) String() string

type Stacktrace

type Stacktrace struct {
	Global bool
}

Stacktrace can print the current stacktrace

func (Stacktrace) String

func (st Stacktrace) String() string

Jump to

Keyboard shortcuts

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