logger

package
v0.35.2 Latest Latest
Warning

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

Go to latest
Published: Nov 23, 2024 License: GPL-3.0 Imports: 5 Imported by: 1

Documentation

Overview

Package logger is the central log repository for gopher2600. There is a single log for the entire application and can be accessed through the package level functions.

New log entries are made with the package level Log() and Logf() functions. Both these functions require an implementation of the Permission interface. This interface tests whether the environment making the logging request is allowed to make new log entries.

The environment.Environment type satisfies the Permission interface. If it's not convenient to provide an instance of that type then logging.Allow can be used to provide blanket permission to the caller.

The Colorizer type can be used with SetEcho() to output a simply coloured log entries (using ANSI control codes).

The logger package should not be used inside any init() function.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func BorrowLog added in v0.16.0

func BorrowLog(f func([]Entry))

BorrowLog gives the provided function the critial section and access to the list of log entries

func Clear

func Clear()

Clear all entries from central logger

func Log

func Log(perm Permission, tag string, detail any)

Log adds an entry to the central logger

func Logf added in v0.10.1

func Logf(perm Permission, tag, detail string, args ...any)

Logf adds a new entry to the central logger. The detail string is interpreted as a formatting string as described by the fmt package

func SetEcho added in v0.7.1

func SetEcho(output io.Writer, writeRecent bool)

SetEcho prints entries in the central logger to io.Writer as they are created

func Tail

func Tail(output io.Writer, number int)

Tail writes the last N entries in the central logger to io.Writer

func Write

func Write(output io.Writer)

Write contents of central logger to io.Writer

func WriteRecent added in v0.7.1

func WriteRecent(output io.Writer)

WriteRecent returns only the entries in the central logger added since the last call to WriteRecent

Types

type Entry

type Entry struct {
	Time     time.Time
	Tag      string
	Detail   string
	Repeated int
}

Entry represents a single line/entry in the log

func (*Entry) String added in v0.7.1

func (e *Entry) String() string

type Logger added in v0.35.2

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

not exposing Logger to outside of the package. the package level functions can be used to log to the central Logger

func NewLogger added in v0.35.2

func NewLogger(maxEntries int) *Logger

NewLogger is the preferred method of initialisation for the Logger type

func (*Logger) BorrowLog added in v0.35.2

func (l *Logger) BorrowLog(f func([]Entry))

BorrowLog gives the provided function the critial section and access to the list of log entries

func (*Logger) Clear added in v0.35.2

func (l *Logger) Clear()

Clear all entries from logger

func (*Logger) Log added in v0.35.2

func (l *Logger) Log(perm Permission, tag string, detail any)

Log adds a new entry to the logger. The detail string will be interpreted as either a string, an error type or a fmt.Stringer type

In the case of being an error type, the detail string will be taken from the Error() function

Detail arguments of an unsupported type will be formatted using the %v verb from the fmt package. ie. fmt.Sprintf("%v", detail)

func (*Logger) Logf added in v0.35.2

func (l *Logger) Logf(perm Permission, tag, detail string, args ...any)

Logf adds a new entry to the logger. The detail string is interpreted as a formatting string as described by the fmt package

func (*Logger) SetEcho added in v0.35.2

func (l *Logger) SetEcho(output io.Writer, writeRecent bool)

SetEcho prints entries to io.Writer as and when they are added

func (*Logger) Tail added in v0.35.2

func (l *Logger) Tail(output io.Writer, number int)

Tail writes the last N entries to io.Writer

func (*Logger) Write added in v0.35.2

func (l *Logger) Write(output io.Writer)

Write contents of central logger to io.Writer

func (*Logger) WriteRecent added in v0.35.2

func (l *Logger) WriteRecent(output io.Writer)

WriteRecent returns only the entries added since the last call to CopyRecent

type Permission added in v0.31.0

type Permission interface {
	AllowLogging() bool
}

Permission implementations indicate whether the environment making a log request is allowed to create new log entries. Good for controlling when or if log entries are to be made

var Allow Permission = allow{}

Allow indicates that the logging request should be allowed. A good default to use if a log entry should always be made.

Jump to

Keyboard shortcuts

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