log

package
Version: v0.0.0-...-6e6f452 Latest Latest
Warning

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

Go to latest
Published: Oct 23, 2021 License: MPL-2.0 Imports: 16 Imported by: 53

Documentation

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

func LogLineChecksum

func LogLineChecksum(line string) string

func Set

func Set(logger Logger) (err error)

Set configures the singleton Logger. This method must only be called once, and before calling Get the first time.

Types

type Logger

type Logger interface {
	Err(msg string)
	Errf(format string, a ...interface{})
	Warning(msg string)
	Warningf(format string, a ...interface{})
	Info(msg string)
	Infof(format string, a ...interface{})
	Debug(msg string)
	Debugf(format string, a ...interface{})
	AuditPanic()
	AuditInfo(msg string)
	AuditInfof(format string, a ...interface{})
	AuditObject(string, interface{})
	AuditErr(string)
	AuditErrf(format string, a ...interface{})
}

A Logger logs messages with explicit priority levels. It is implemented by a logging back-end as provided by New() or NewMock().

Example
// Write all logs to UDP on a high port so as to not bother the system
// which is running the test
writer, err := syslog.Dial("udp", "127.0.0.1:65530", syslog.LOG_INFO|syslog.LOG_LOCAL0, "")
if err != nil {
	log.Fatal(err)
}

logger, err := New(writer, stdoutLevel, syslogLevel)
if err != nil {
	log.Fatal(err)
}
impl, ok := logger.(*impl)
if !ok {
	log.Fatalf("Wrong type returned from New: %T", logger)
}

bw, ok := impl.w.(*bothWriter)
if !ok {
	log.Fatalf("Wrong type of impl's writer: %T\n", impl.w)
}
bw.clk = clock.NewFake()
impl.AuditErr("Error Audit")
impl.Warning("Warning Audit")
Output:

�[31m�[1mE000000 log.test 46_ghQg [AUDIT] Error Audit�[0m
�[33mW000000 log.test 9rr1xwQ Warning Audit�[0m

func Get

func Get() Logger

Get obtains the singleton Logger. If Set has not been called first, this method initializes with basic defaults. The basic defaults cannot error, and subsequent access to an already-set Logger also cannot error, so this method is error-safe.

func New

func New(log *syslog.Writer, stdoutLogLevel int, syslogLogLevel int) (Logger, error)

New returns a new Logger that uses the given syslog.Writer as a backend.

type Mock

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

Mock is a logger that stores all log messages in memory to be examined by a test.

func NewMock

func NewMock() *Mock

NewMock creates a mock logger.

func UseMock

func UseMock() *Mock

UseMock sets a mock logger as the default logger, and returns it.

func (*Mock) AuditErr

func (log *Mock) AuditErr(msg string)

AuditErr can format an error for auditing; it does so at ERR level.

func (*Mock) AuditErrf

func (log *Mock) AuditErrf(format string, a ...interface{})

AuditErrf can format an error for auditing; it does so at ERR level.

func (*Mock) AuditInfo

func (log *Mock) AuditInfo(msg string)

AuditInfo sends an INFO-severity message that is prefixed with the audit tag, for special handling at the upstream system logger.

func (*Mock) AuditInfof

func (log *Mock) AuditInfof(format string, a ...interface{})

AuditInfof sends an INFO-severity message that is prefixed with the audit tag, for special handling at the upstream system logger.

func (*Mock) AuditObject

func (log *Mock) AuditObject(msg string, obj interface{})

AuditObject sends an INFO-severity JSON-serialized object message that is prefixed with the audit tag, for special handling at the upstream system logger.

func (*Mock) AuditPanic

func (log *Mock) AuditPanic()

AuditPanic catches panicking executables. This method should be added in a defer statement as early as possible

func (*Mock) Clear

func (m *Mock) Clear()

Clear resets the log buffer.

func (*Mock) Debug

func (log *Mock) Debug(msg string)

Debug level messages pass through normally.

func (*Mock) Debugf

func (log *Mock) Debugf(format string, a ...interface{})

Debugf level messages pass through normally.

func (*Mock) Err

func (log *Mock) Err(msg string)

Err level messages are always marked with the audit tag, for special handling at the upstream system logger.

func (*Mock) Errf

func (log *Mock) Errf(format string, a ...interface{})

Errf level messages are always marked with the audit tag, for special handling at the upstream system logger.

func (*Mock) GetAll

func (m *Mock) GetAll() []string

GetAll returns all messages logged since instantiation or the last call to Clear().

The caller must not modify the returned slice or its elements.

func (*Mock) GetAllMatching

func (m *Mock) GetAllMatching(reString string) []string

GetAllMatching returns all messages logged since instantiation or the last Clear() whose text matches the given regexp. The regexp is accepted as a string and compiled on the fly, because convenience is more important than performance.

The caller must not modify the elements of the returned slice.

func (*Mock) Info

func (log *Mock) Info(msg string)

Info level messages pass through normally.

func (*Mock) Infof

func (log *Mock) Infof(format string, a ...interface{})

Infof level messages pass through normally.

func (*Mock) Warning

func (log *Mock) Warning(msg string)

Warning level messages pass through normally.

func (*Mock) Warningf

func (log *Mock) Warningf(format string, a ...interface{})

Warningf level messages pass through normally.

type WaitingMock

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

WaitingMock is a logger that stores all messages in memory to be examined by a test with methods

func NewWaitingMock

func NewWaitingMock() *WaitingMock

NewWaitingMock creates a mock logger implementing the writer interface. It stores all logged messages in a buffer for inspection by test functions.

func (*WaitingMock) AuditErr

func (log *WaitingMock) AuditErr(msg string)

AuditErr can format an error for auditing; it does so at ERR level.

func (*WaitingMock) AuditErrf

func (log *WaitingMock) AuditErrf(format string, a ...interface{})

AuditErrf can format an error for auditing; it does so at ERR level.

func (*WaitingMock) AuditInfo

func (log *WaitingMock) AuditInfo(msg string)

AuditInfo sends an INFO-severity message that is prefixed with the audit tag, for special handling at the upstream system logger.

func (*WaitingMock) AuditInfof

func (log *WaitingMock) AuditInfof(format string, a ...interface{})

AuditInfof sends an INFO-severity message that is prefixed with the audit tag, for special handling at the upstream system logger.

func (*WaitingMock) AuditObject

func (log *WaitingMock) AuditObject(msg string, obj interface{})

AuditObject sends an INFO-severity JSON-serialized object message that is prefixed with the audit tag, for special handling at the upstream system logger.

func (*WaitingMock) AuditPanic

func (log *WaitingMock) AuditPanic()

AuditPanic catches panicking executables. This method should be added in a defer statement as early as possible

func (*WaitingMock) Debug

func (log *WaitingMock) Debug(msg string)

Debug level messages pass through normally.

func (*WaitingMock) Debugf

func (log *WaitingMock) Debugf(format string, a ...interface{})

Debugf level messages pass through normally.

func (*WaitingMock) Err

func (log *WaitingMock) Err(msg string)

Err level messages are always marked with the audit tag, for special handling at the upstream system logger.

func (*WaitingMock) Errf

func (log *WaitingMock) Errf(format string, a ...interface{})

Errf level messages are always marked with the audit tag, for special handling at the upstream system logger.

func (*WaitingMock) Info

func (log *WaitingMock) Info(msg string)

Info level messages pass through normally.

func (*WaitingMock) Infof

func (log *WaitingMock) Infof(format string, a ...interface{})

Infof level messages pass through normally.

func (*WaitingMock) WaitForMatch

func (m *WaitingMock) WaitForMatch(reString string, timeout time.Duration) (string, error)

WaitForMatch returns the first log line matching a regex. It accepts a regexp string and timeout. If the timeout value is met before the matching pattern is read from the channel, an error is returned.

func (*WaitingMock) Warning

func (log *WaitingMock) Warning(msg string)

Warning level messages pass through normally.

func (*WaitingMock) Warningf

func (log *WaitingMock) Warningf(format string, a ...interface{})

Warningf level messages pass through normally.

Source Files

Jump to

Keyboard shortcuts

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