logger

package
v0.0.76 Latest Latest
Warning

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

Go to latest
Published: Nov 4, 2024 License: MIT Imports: 11 Imported by: 2

Documentation

Index

Constants

View Source
const (
	Reset       = "\033[0m"
	Gray        = "\033[1;30m"
	Red         = "\033[31m"
	Green       = "\033[32m"
	Yellow      = "\033[33m"
	Blue        = "\033[34m"
	Magenta     = "\033[35m"
	Cyan        = "\033[36m"
	White       = "\033[37m"
	BlueBold    = "\033[34;1m"
	MagentaBold = "\033[35;1m"
	RedBold     = "\033[31;1m"
	YellowBold  = "\033[33;1m"
	WhiteBold   = "\033[37;1m"
	CyanBold    = "\033[36;1m"
	Purple      = "\u001b[38;5;200m"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type JSONLogEntry added in v0.0.65

type JSONLogEntry struct {
	Timestamp time.Time              `json:"timestamp,omitempty"`
	Message   string                 `json:"message"`
	Severity  string                 `json:"severity,omitempty"`
	Trace     string                 `json:"logging.googleapis.com/trace,omitempty"`
	Metadata  map[string]interface{} `json:"metadata,omitempty"`
	// Logs Explorer allows filtering and display of this as `jsonPayload.component`.
	Component string `json:"component,omitempty"`
	// contains filtered or unexported fields
}

JSONLogEntry defines a log entry this is modeled after the JSON format expected by Cloud Logging https://github.com/GoogleCloudPlatform/golang-samples/blob/08bc985b4973901c09344eabbe9d7d5add7dc656/run/logging-manual/main.go

func (JSONLogEntry) String added in v0.0.65

func (e JSONLogEntry) String() string

String renders an entry structure to the JSON format expected by Cloud Logging.

type LogLevel added in v0.0.54

type LogLevel int

LogLevel defines the level of logging

const (
	LevelTrace LogLevel = iota
	LevelDebug
	LevelInfo
	LevelWarn
	LevelError
	LevelNone
)

func GetLevelFromEnv added in v0.0.74

func GetLevelFromEnv() LogLevel

GetLevelFrom env will look at the environment var `SM_LOG_LEVEL` and convert it into the appropriate LogLevel

type Logger

type Logger interface {
	// With will return a new logger using metadata as the base context
	With(metadata map[string]interface{}) Logger
	// WithPrefix will return a new logger with a prefix prepended to the message
	WithPrefix(prefix string) Logger
	// Trace level logging
	Trace(msg string, args ...interface{})
	// Debug level logging
	Debug(msg string, args ...interface{})
	// Info level logging
	Info(msg string, args ...interface{})
	// Warning level logging
	Warn(msg string, args ...interface{})
	// Error level logging
	Error(msg string, args ...interface{})
	// Fatal level logging and exit with code 1
	Fatal(msg string, args ...interface{})
}

Logger is an interface for logging

func NewGCloudLogger

func NewGCloudLogger() Logger

NewGCloudLogger returns a new Logger instance which can be used for structured google cloud logging

func NewGCloudLoggerWithSink added in v0.0.11

func NewGCloudLoggerWithSink(sink Sink, level LogLevel) Logger

NewGCloudLoggerWithSink returns a new Logger instance using a sink and suppressing the console logging

func NewJSONLogger added in v0.0.65

func NewJSONLogger(levels ...LogLevel) Logger

NewJSONLogger returns a new Logger instance which can be used for structured logging

func NewMultiLogger added in v0.0.65

func NewMultiLogger(loggers ...Logger) Logger

func WithKV added in v0.0.65

func WithKV(logger Logger, key string, value any) Logger

type Sink added in v0.0.10

type Sink io.Writer

type SinkLogger added in v0.0.65

type SinkLogger interface {
	Logger
	// SetSink will set the sink, and level to sink
	SetSink(sink Sink, level LogLevel)
}

func NewConsoleLogger

func NewConsoleLogger(levels ...LogLevel) SinkLogger

NewConsoleLogger returns a new Logger instance which will log to the console

func NewJSONLoggerWithSink added in v0.0.65

func NewJSONLoggerWithSink(sink Sink, level LogLevel) SinkLogger

NewJSONLoggerWithSink returns a new Logger instance using a sink and suppressing the console logging

type TestLogEntry

type TestLogEntry struct {
	Severity  string
	Message   string
	Arguments []interface{}
}

type TestLogger

type TestLogger struct {
	Logs []TestLogEntry
	// contains filtered or unexported fields
}

func NewTestLogger

func NewTestLogger() *TestLogger

NewTestLogger returns a new Logger instance useful for testing

func (*TestLogger) Debug

func (c *TestLogger) Debug(msg string, args ...interface{})

func (*TestLogger) Error

func (c *TestLogger) Error(msg string, args ...interface{})

func (*TestLogger) Fatal added in v0.0.60

func (c *TestLogger) Fatal(msg string, args ...interface{})

func (*TestLogger) Info

func (c *TestLogger) Info(msg string, args ...interface{})

func (*TestLogger) Log

func (c *TestLogger) Log(level string, msg string, args ...interface{})

func (*TestLogger) Trace

func (c *TestLogger) Trace(msg string, args ...interface{})

func (*TestLogger) Warn

func (c *TestLogger) Warn(msg string, args ...interface{})

func (*TestLogger) With

func (c *TestLogger) With(metadata map[string]interface{}) Logger

func (*TestLogger) WithPrefix added in v0.0.13

func (c *TestLogger) WithPrefix(prefix string) Logger

WithPrefix will return a new logger with a prefix prepended to the message

func (*TestLogger) WithSink added in v0.0.10

func (c *TestLogger) WithSink(sink Sink, level LogLevel) Logger

Jump to

Keyboard shortcuts

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