log

package
v4.34.0 Latest Latest
Warning

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

Go to latest
Published: Aug 6, 2024 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const (
	LogOff   int = 0
	LogFatal int = 1
	LogError int = 2
	LogWarn  int = 3
	LogInfo  int = 4
	LogDebug int = 5
	LogTrace int = 6
	LogAll   int = 7
)

Logger level constants.

Variables

This section is empty.

Functions

func NewBenthosLogAdapter

func NewBenthosLogAdapter(l *slog.Logger) *logHandler

NewBenthosLogAdapter creates a new Benthos log adapter.

func Spec

func Spec() docs.FieldSpecs

Spec returns a field spec for the logger configuration fields.

Types

type Config

type Config struct {
	LogLevel      string            `yaml:"level"`
	Format        string            `yaml:"format"`
	AddTimeStamp  bool              `yaml:"add_timestamp"`
	LevelName     string            `yaml:"level_name"`
	MessageName   string            `yaml:"message_name"`
	TimestampName string            `yaml:"timestamp_name"`
	StaticFields  map[string]string `yaml:"static_fields"`
	File          File              `yaml:"file"`
}

Config holds configuration options for a logger object.

func FromParsed

func FromParsed(pConf *docs.ParsedConfig) (conf Config, err error)

FromParsed extracts the log fields from the parsed config and returns a log config.

func NewConfig

func NewConfig() Config

NewConfig returns a config struct with the default values for each field.

func (*Config) UnmarshalYAML

func (conf *Config) UnmarshalYAML(unmarshal func(any) error) error

UnmarshalYAML ensures that when parsing configs that are in a slice the default values are still applied.

type File

type File struct {
	Path         string `yaml:"path"`
	Rotate       bool   `yaml:"rotate"`
	RotateMaxAge int    `yaml:"rotate_max_age_days"`
}

File contains configuration for file based logging.

type Logger

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

Logger is an object with support for levelled logging and modular components.

func (*Logger) Debug

func (l *Logger) Debug(format string, v ...any)

Debug prints a debug message to the console.

func (*Logger) Error

func (l *Logger) Error(format string, v ...any)

Error prints an error message to the console.

func (*Logger) Fatal

func (l *Logger) Fatal(format string, v ...any)

Fatal prints a fatal message to the console. Does NOT cause panic.

func (*Logger) Info

func (l *Logger) Info(format string, v ...any)

Info prints an information message to the console.

func (*Logger) Trace

func (l *Logger) Trace(format string, v ...any)

Trace prints a trace message to the console.

func (*Logger) Warn

func (l *Logger) Warn(format string, v ...any)

Warn prints a warning message to the console.

func (*Logger) With

func (l *Logger) With(keyValues ...any) Modular

With returns a copy of the logger with new labels added to the logging context.

func (*Logger) WithFields

func (l *Logger) WithFields(inboundFields map[string]string) Modular

WithFields returns a logger with new fields added to the JSON formatted output.

type Modular

type Modular interface {
	WithFields(fields map[string]string) Modular
	With(keyValues ...any) Modular

	Fatal(format string, v ...any)
	Error(format string, v ...any)
	Warn(format string, v ...any)
	Info(format string, v ...any)
	Debug(format string, v ...any)
	Trace(format string, v ...any)
}

Modular is a log printer that allows you to branch new modules.

func New

func New(stream io.Writer, fs ifs.FS, config Config) (Modular, error)

New returns a new logger from a config, or returns an error if the config is invalid.

func Noop

func Noop() Modular

Noop creates and returns a new logger object that writes nothing.

func TeeLogger

func TeeLogger(a, b Modular) Modular

TeeLogger creates a new log adapter that allows you to branch new modules.

func Wrap

func Wrap(l PrintFormatter) Modular

Wrap a PrintFormatter with a log.Modular implementation. Log level is set to INFO, use WrapAtLevel to set this explicitly.

func WrapAtLevel

func WrapAtLevel(l PrintFormatter, level int) Modular

WrapAtLevel wraps a PrintFormatter with a log.Modular implementation with an explicit log level.

type PrintFormatter

type PrintFormatter interface {
	Printf(format string, v ...any)
	Println(v ...any)
}

PrintFormatter is an interface implemented by standard loggers.

Jump to

Keyboard shortcuts

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