memlogger

package
v0.0.0-...-626596f Latest Latest
Warning

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

Go to latest
Published: Dec 3, 2024 License: Apache-2.0 Imports: 8 Imported by: 14

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Dump

func Dump(ctx context.Context, w io.Writer) (n int, err error)

Dump is a convenience function to dump the current contents of the memory logger to the writer.

This will panic if the current logger is not a memory logger.

func MustDumpStdout

func MustDumpStdout(ctx context.Context)

MustDumpStdout is a convenience function to dump the current contents of the memory logger to stdout.

This will panic if the current logger is not a memory logger.

func Reset

func Reset(ctx context.Context)

Reset is a convenience function to reset the current memory logger.

This will panic if the current logger is not a memory logger.

func ShouldHaveLog

func ShouldHaveLog(actual any, expected ...any) string

ShouldHaveLog is a goconvey custom assertion which asserts that the logger has received a log. It takes up to 3 arguments.

`actual` should either be a *MemLogger or a context.Context containing a *MemLogger.

argument 1 (expected[0]) is the log level. argument 2 (expected[1]) is a substring the message. If omitted or the empty string, this value is not checked. argument 3 (expected[2]) is the fields data. If omitted or nil, this value is not checked.

func ShouldNotHaveLog

func ShouldNotHaveLog(actual any, expected ...any) string

ShouldNotHaveLog is the inverse of ShouldHaveLog. It asserts that the logger has not seen such a log.

func Use

func Use(ctx context.Context) context.Context

Use adds a memory backed Logger to Context, with concrete type *MemLogger. Casting to the concrete type can be used to inspect the log output after running a test case, for example.

Types

type LogEntry

type LogEntry struct {
	Level     logging.Level
	Msg       string
	Data      map[string]any
	CallDepth int
}

LogEntry is a single entry in a MemLogger, containing a message and a severity.

type MemLogger

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

MemLogger is an implementation of Logger. Zero value is a valid logger.

func (*MemLogger) Debugf

func (m *MemLogger) Debugf(format string, args ...any)

Debugf implements the logging.Logger interface.

func (*MemLogger) Dump

func (m *MemLogger) Dump(w io.Writer) (n int, err error)

Dump dumps the current memory logger contents to the given writer in a human-readable format.

func (*MemLogger) Errorf

func (m *MemLogger) Errorf(format string, args ...any)

Errorf implements the logging.Logger interface.

func (*MemLogger) Get

func (m *MemLogger) Get(lvl logging.Level, msg string, data map[string]any) *LogEntry

Get returns the first matching log entry. Note that lvl, msg and data have to match the entry precisely.

func (*MemLogger) GetFunc

func (m *MemLogger) GetFunc(f func(*LogEntry) bool) *LogEntry

GetFunc returns the first matching log entry.

func (*MemLogger) Has

func (m *MemLogger) Has(lvl logging.Level, msg string, data map[string]any) bool

Has returns true iff the MemLogger contains the specified log message. Note that lvl, msg and data have to match the entry precisely.

func (*MemLogger) HasFunc

func (m *MemLogger) HasFunc(f func(*LogEntry) bool) bool

HasFunc returns true iff the MemLogger contains a matching log message.

func (*MemLogger) Infof

func (m *MemLogger) Infof(format string, args ...any)

Infof implements the logging.Logger interface.

func (*MemLogger) LogCall

func (m *MemLogger) LogCall(lvl logging.Level, calldepth int, format string, args []any)

LogCall implements the logging.Logger interface.

func (*MemLogger) Messages

func (m *MemLogger) Messages() []LogEntry

Messages returns all of the log messages that this memory logger has recorded.

func (*MemLogger) Reset

func (m *MemLogger) Reset()

Reset resets the logged messages recorded so far.

func (*MemLogger) Warningf

func (m *MemLogger) Warningf(format string, args ...any)

Warningf implements the logging.Logger interface.

Jump to

Keyboard shortcuts

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