logger

package
v3.12.0 Latest Latest
Warning

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

Go to latest
Published: Nov 22, 2023 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Overview

A common logging interface used throughout the code which has implementations using stdout and AWS cloudwatch. Log levels are settable (DEBUG, INFO, ERROR) and there are implementations which provide less verbosity for use in things like Example unit tests.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetLogLevelName

func GetLogLevelName(level LogLevel) (string, error)

func HandlePanicWithLog

func HandlePanicWithLog(withLog ILogger)

This can be called from anywhere that wants to handle a panic gracefully and ensure that any logging is done (eg completing sending to cloudwatch)

Types

type CloudwatchLogger

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

CloudwatchLogger - Structure holding API logger internals

func (*CloudwatchLogger) Close

func (l *CloudwatchLogger) Close()

func (*CloudwatchLogger) Debugf

func (l *CloudwatchLogger) Debugf(format string, a ...interface{})

Debugf - Print debug to log, with format string

func (*CloudwatchLogger) Errorf

func (l *CloudwatchLogger) Errorf(format string, a ...interface{})

Errorf - Print error to log, with format string

func (*CloudwatchLogger) GetLogLevel

func (l *CloudwatchLogger) GetLogLevel() LogLevel

func (*CloudwatchLogger) Infof

func (l *CloudwatchLogger) Infof(format string, a ...interface{})

Infof - Print info to log, with format string

func (*CloudwatchLogger) Printf

func (l *CloudwatchLogger) Printf(level LogLevel, format string, a ...interface{})

Log enqueues a log message to be written to a log stream.

The log message must be less than 1,048,550 bytes, and the time must not be more than 2 hours in the future, 14 days in the past, or older than the retention period of the log group.

This method is safe for concurrent access by multiple goroutines.

func (*CloudwatchLogger) SetLogLevel

func (l *CloudwatchLogger) SetLogLevel(level LogLevel)

type ILogger

type ILogger interface {
	Printf(level LogLevel, format string, a ...interface{})
	Debugf(format string, a ...interface{})
	Infof(format string, a ...interface{})
	Errorf(format string, a ...interface{})
	SetLogLevel(level LogLevel)
	GetLogLevel() LogLevel
	Close()
}

ILogger - Generic logger interface

func InitCloudWatchLogger

func InitCloudWatchLogger(sess *session.Session, logGroupName string, logStreamName string, logLevel LogLevel, retentionDays int, logIntervalSec time.Duration) (ILogger, error)

InitCloudWatchLogger - initialises the logger, given settings and AWS session

type LogLevel

type LogLevel int

LogLevel - log level type

const (

	// LogDebug - DEBUG log level
	LogDebug LogLevel = iota

	// LogInfo - INFO log level
	LogInfo LogLevel = iota

	// LogError - ERROR log level (does not call os.Exit!)
	LogError LogLevel = iota
)

func GetLogLevel

func GetLogLevel(name string) (LogLevel, error)

type NullLogger

type NullLogger struct {
}

NullLogger - For mocking out in tests

func (*NullLogger) Close

func (l *NullLogger) Close()

func (*NullLogger) Debugf

func (l *NullLogger) Debugf(format string, a ...interface{})

func (*NullLogger) Errorf

func (l *NullLogger) Errorf(format string, a ...interface{})

func (*NullLogger) GetLogLevel

func (l *NullLogger) GetLogLevel() LogLevel

func (*NullLogger) Infof

func (l *NullLogger) Infof(format string, a ...interface{})

func (*NullLogger) Printf

func (l *NullLogger) Printf(level LogLevel, format string, a ...interface{})

func (*NullLogger) SetLogLevel

func (l *NullLogger) SetLogLevel(level LogLevel)

type StdOutLogger

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

StdOutLogger - For mocking out in tests

func (*StdOutLogger) Close

func (l *StdOutLogger) Close()

func (*StdOutLogger) Debugf

func (l *StdOutLogger) Debugf(format string, a ...interface{})

func (*StdOutLogger) Errorf

func (l *StdOutLogger) Errorf(format string, a ...interface{})

func (*StdOutLogger) GetLogLevel

func (l *StdOutLogger) GetLogLevel() LogLevel

func (*StdOutLogger) Infof

func (l *StdOutLogger) Infof(format string, a ...interface{})

func (*StdOutLogger) Printf

func (l *StdOutLogger) Printf(level LogLevel, format string, a ...interface{})

func (*StdOutLogger) SetLogLevel

func (l *StdOutLogger) SetLogLevel(level LogLevel)

type StdOutLoggerForTest

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

StdOutLoggerForTest - For mocking out in tests, but saves logs so they are searchable

func (*StdOutLoggerForTest) Close

func (l *StdOutLoggerForTest) Close()

func (*StdOutLoggerForTest) Debugf

func (l *StdOutLoggerForTest) Debugf(format string, a ...interface{})

func (*StdOutLoggerForTest) Errorf

func (l *StdOutLoggerForTest) Errorf(format string, a ...interface{})

func (*StdOutLoggerForTest) GetLogLevel

func (l *StdOutLoggerForTest) GetLogLevel() LogLevel

func (*StdOutLoggerForTest) Infof

func (l *StdOutLoggerForTest) Infof(format string, a ...interface{})

func (*StdOutLoggerForTest) LastLogLine

func (l *StdOutLoggerForTest) LastLogLine() string

Checking logs (for tests)

func (*StdOutLoggerForTest) LogContains

func (l *StdOutLoggerForTest) LogContains(txt string) bool

func (*StdOutLoggerForTest) Printf

func (l *StdOutLoggerForTest) Printf(level LogLevel, format string, a ...interface{})

func (*StdOutLoggerForTest) SetLogLevel

func (l *StdOutLoggerForTest) SetLogLevel(level LogLevel)

Jump to

Keyboard shortcuts

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