logger

package
v3.125.0 Latest Latest
Warning

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

Go to latest
Published: May 4, 2026 License: MIT Imports: 11 Imported by: 10

Documentation

Overview

Package logger provides a logger abstraction for writing log messages in configurable formats to different outputs, such as a console, plain text file, or a JSON file.

It is intended for internal use by buildkite-agent only.

Index

Constants

View Source
const (
	DateFormat = "2006-01-02 15:04:05"
)

Variables

View Source
var Discard = &ConsoleLogger{
	printer: &TextPrinter{
		Writer: io.Discard,
	},
}

Functions

func ColorsSupported

func ColorsSupported() bool

Types

type Buffer added in v3.24.0

type Buffer struct {
	Messages []string
	// contains filtered or unexported fields
}

Buffer is a Logger implementation intended for testing; messages are stored internally.

func NewBuffer added in v3.25.0

func NewBuffer() *Buffer

NewBuffer creates a new Buffer with Messages slice initialized. This makes it simpler to assert empty []string when no log messages have been sent; otherwise Messages would be nil.

func (*Buffer) Debugf added in v3.125.0

func (b *Buffer) Debugf(format string, v ...any)

func (*Buffer) Errorf added in v3.125.0

func (b *Buffer) Errorf(format string, v ...any)

func (*Buffer) Fatalf added in v3.125.0

func (b *Buffer) Fatalf(format string, v ...any)

func (*Buffer) Infof added in v3.125.0

func (b *Buffer) Infof(format string, v ...any)

func (*Buffer) Level added in v3.24.0

func (b *Buffer) Level() Level

func (*Buffer) Noticef added in v3.125.0

func (b *Buffer) Noticef(format string, v ...any)

func (*Buffer) SetLevel added in v3.24.0

func (b *Buffer) SetLevel(level Level)

func (*Buffer) Warnf added in v3.125.0

func (b *Buffer) Warnf(format string, v ...any)

func (*Buffer) WithFields added in v3.24.0

func (b *Buffer) WithFields(fields ...Field) Logger

type ConsoleLogger

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

func (*ConsoleLogger) Debugf added in v3.125.0

func (l *ConsoleLogger) Debugf(format string, v ...any)

func (*ConsoleLogger) Errorf added in v3.125.0

func (l *ConsoleLogger) Errorf(format string, v ...any)

func (*ConsoleLogger) Fatalf added in v3.125.0

func (l *ConsoleLogger) Fatalf(format string, v ...any)

func (*ConsoleLogger) Infof added in v3.125.0

func (l *ConsoleLogger) Infof(format string, v ...any)

func (*ConsoleLogger) Level

func (l *ConsoleLogger) Level() Level

func (*ConsoleLogger) Noticef added in v3.125.0

func (l *ConsoleLogger) Noticef(format string, v ...any)

func (*ConsoleLogger) SetLevel

func (l *ConsoleLogger) SetLevel(level Level)

SetLevel sets the level in the logger

func (*ConsoleLogger) Warnf added in v3.125.0

func (l *ConsoleLogger) Warnf(format string, v ...any)

func (*ConsoleLogger) WithFields

func (l *ConsoleLogger) WithFields(fields ...Field) Logger

WithFields returns a copy of the logger with the provided fields

type DeprecatedLogger added in v3.125.0

type DeprecatedLogger struct {
	Logger
}

DeprecatedLogger wraps the logger with the deprecated (no trailing "f") method names.

func (DeprecatedLogger) Debug added in v3.125.0

func (d DeprecatedLogger) Debug(format string, v ...any)

func (DeprecatedLogger) Error added in v3.125.0

func (d DeprecatedLogger) Error(format string, v ...any)

func (DeprecatedLogger) Fatal added in v3.125.0

func (d DeprecatedLogger) Fatal(format string, v ...any)

func (DeprecatedLogger) Info added in v3.125.0

func (d DeprecatedLogger) Info(format string, v ...any)

func (DeprecatedLogger) Notice added in v3.125.0

func (d DeprecatedLogger) Notice(format string, v ...any)

func (DeprecatedLogger) Warn added in v3.125.0

func (d DeprecatedLogger) Warn(format string, v ...any)

type Field

type Field interface {
	Key() string
	String() string
}

func DurationField

func DurationField(key string, value time.Duration) Field

func IntField

func IntField(key string, value int) Field

func StringField

func StringField(key, value string) Field

type Fields

type Fields []Field

func (*Fields) Add

func (f *Fields) Add(fields ...Field)

func (*Fields) Get

func (f *Fields) Get(key string) []Field

type GenericField

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

func (GenericField) Key

func (f GenericField) Key() string

func (GenericField) String

func (f GenericField) String() string

type JSONPrinter

type JSONPrinter struct {
	Writer io.Writer
}

func NewJSONPrinter

func NewJSONPrinter(w io.Writer) *JSONPrinter

func (*JSONPrinter) Print

func (p *JSONPrinter) Print(level Level, msg string, fields Fields)

type Level

type Level int
const (
	DEBUG Level = iota
	NOTICE
	INFO
	WARN
	ERROR
	FATAL
)

func LevelFromString added in v3.36.0

func LevelFromString(s string) (Level, error)

func (Level) String

func (p Level) String() string

String returns the string representation of a logging level.

type Logger

type Logger interface {
	Debugf(format string, v ...any)
	Errorf(format string, v ...any)
	Fatalf(format string, v ...any)
	Noticef(format string, v ...any)
	Warnf(format string, v ...any)
	Infof(format string, v ...any)

	WithFields(fields ...Field) Logger
	SetLevel(level Level)
	Level() Level
}

func NewConsoleLogger

func NewConsoleLogger(printer Printer, exitFn func(int)) Logger

type Printer

type Printer interface {
	Print(level Level, msg string, fields Fields)
}

type TestPrinter added in v3.93.0

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

TestPrinter is a log printer than calls the Logf method of a testing.T or testing.B.

func NewTestPrinter added in v3.93.0

func NewTestPrinter(tb testing.TB) TestPrinter

func (TestPrinter) Print added in v3.93.0

func (tp TestPrinter) Print(level Level, msg string, fields Fields)

type TextPrinter

type TextPrinter struct {
	Colors bool
	Writer io.Writer

	IsPrefixFn  func(Field) bool
	IsVisibleFn func(Field) bool
}

func NewTextPrinter

func NewTextPrinter(w io.Writer) *TextPrinter

func (*TextPrinter) Print

func (l *TextPrinter) Print(level Level, msg string, fields Fields)

Jump to

Keyboard shortcuts

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