logging

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Sep 15, 2025 License: MIT Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BaseLogger

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

BaseLogger implements the base logging functionality

func NewLogger

func NewLogger(level LogLevel, output io.Writer, formatter LogFormatter) *BaseLogger

NewLogger creates a new logger

func (*BaseLogger) Close

func (l *BaseLogger) Close() error

Close closes the logger

func (*BaseLogger) Debug

func (l *BaseLogger) Debug(ctx context.Context, message string, fields ...LogField)

Debug logs a debug message

func (*BaseLogger) Error

func (l *BaseLogger) Error(ctx context.Context, message string, fields ...LogField)

Error logs an error message

func (*BaseLogger) Fatal

func (l *BaseLogger) Fatal(ctx context.Context, message string, fields ...LogField)

Fatal logs a fatal message and exits

func (*BaseLogger) GetLevel

func (l *BaseLogger) GetLevel() LogLevel

GetLevel gets the current log level

func (*BaseLogger) Info

func (l *BaseLogger) Info(ctx context.Context, message string, fields ...LogField)

Info logs an info message

func (*BaseLogger) SetLevel

func (l *BaseLogger) SetLevel(level LogLevel)

SetLevel sets the log level

func (*BaseLogger) Warn

func (l *BaseLogger) Warn(ctx context.Context, message string, fields ...LogField)

Warn logs a warning message

func (*BaseLogger) WithContext

func (l *BaseLogger) WithContext(ctx context.Context) Logger

WithContext creates a new logger with context

func (*BaseLogger) WithFields

func (l *BaseLogger) WithFields(fields ...LogField) Logger

WithFields creates a new logger with additional fields

type JSONFormatter

type JSONFormatter struct{}

JSONFormatter formats log entries as JSON

func (*JSONFormatter) Format

func (f *JSONFormatter) Format(entry LogEntry) ([]byte, error)

Format formats a log entry as JSON

type LogEntry

type LogEntry struct {
	Level     LogLevel
	Message   string
	Time      time.Time
	Fields    []LogField
	Context   context.Context
	Caller    string
	Timestamp string
}

LogEntry represents a log entry

type LogField

type LogField struct {
	Key   string
	Value interface{}
}

LogField represents a structured log field

func Any

func Any(key string, value interface{}) LogField

func Bool

func Bool(key string, value bool) LogField

func Duration

func Duration(key string, value time.Duration) LogField

func ErrorField

func ErrorField(key string, value error) LogField

func Float64

func Float64(key string, value float64) LogField

func Int

func Int(key string, value int) LogField

func Int64

func Int64(key string, value int64) LogField

func String

func String(key, value string) LogField

Convenience functions for creating log fields

func Time

func Time(key string, value time.Time) LogField

type LogFormatter

type LogFormatter interface {
	Format(entry LogEntry) ([]byte, error)
}

LogFormatter interface for formatting log entries

type LogLevel

type LogLevel int

LogLevel represents the logging level

const (
	LogLevelDebug LogLevel = iota
	LogLevelInfo
	LogLevelWarn
	LogLevelError
	LogLevelFatal
)

func ParseLogLevel

func ParseLogLevel(level string) LogLevel

ParseLogLevel parses a string to LogLevel

func (LogLevel) String

func (l LogLevel) String() string

String returns the string representation of the log level

type Logger

type Logger interface {
	Debug(ctx context.Context, message string, fields ...LogField)
	Info(ctx context.Context, message string, fields ...LogField)
	Warn(ctx context.Context, message string, fields ...LogField)
	Error(ctx context.Context, message string, fields ...LogField)
	Fatal(ctx context.Context, message string, fields ...LogField)
	WithContext(ctx context.Context) Logger
	WithFields(fields ...LogField) Logger
	SetLevel(level LogLevel)
	GetLevel() LogLevel
	Close() error
}

Logger interface defines the logging contract

func NewLoggerFromConfig

func NewLoggerFromConfig(config LoggerConfig) (Logger, error)

NewLoggerFromConfig creates a new logger from configuration

type LoggerConfig

type LoggerConfig struct {
	Level              LogLevel
	Format             string // "json" or "text"
	Output             string // "stdout", "stderr", or file path
	SlowQueryThreshold time.Duration
	EnableCaller       bool
	EnableTimestamp    bool
}

LoggerConfig represents logger configuration

func DefaultLoggerConfig

func DefaultLoggerConfig() LoggerConfig

DefaultLoggerConfig returns default logger configuration

type MultiLogger

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

MultiLogger logs to multiple outputs

func NewMultiLogger

func NewMultiLogger(loggers ...Logger) *MultiLogger

NewMultiLogger creates a new multi-logger

func (*MultiLogger) Close

func (ml *MultiLogger) Close() error

Close closes all loggers

func (*MultiLogger) Debug

func (ml *MultiLogger) Debug(ctx context.Context, message string, fields ...LogField)

Debug logs to all loggers

func (*MultiLogger) Error

func (ml *MultiLogger) Error(ctx context.Context, message string, fields ...LogField)

Error logs to all loggers

func (*MultiLogger) Fatal

func (ml *MultiLogger) Fatal(ctx context.Context, message string, fields ...LogField)

Fatal logs to all loggers and exits

func (*MultiLogger) GetLevel

func (ml *MultiLogger) GetLevel() LogLevel

GetLevel gets the log level (returns the first logger's level)

func (*MultiLogger) Info

func (ml *MultiLogger) Info(ctx context.Context, message string, fields ...LogField)

Info logs to all loggers

func (*MultiLogger) SetLevel

func (ml *MultiLogger) SetLevel(level LogLevel)

SetLevel sets the log level for all loggers

func (*MultiLogger) Warn

func (ml *MultiLogger) Warn(ctx context.Context, message string, fields ...LogField)

Warn logs to all loggers

func (*MultiLogger) WithContext

func (ml *MultiLogger) WithContext(ctx context.Context) Logger

WithContext creates a new logger with context

func (*MultiLogger) WithFields

func (ml *MultiLogger) WithFields(fields ...LogField) Logger

WithFields creates a new logger with additional fields

type PerformanceLogger

type PerformanceLogger struct {
	Logger
}

PerformanceLogger provides specialized logging for performance metrics

func NewPerformanceLogger

func NewPerformanceLogger(logger Logger) *PerformanceLogger

NewPerformanceLogger creates a new performance logger

func (*PerformanceLogger) LogGoroutineCount

func (ql *PerformanceLogger) LogGoroutineCount(ctx context.Context, count int)

LogGoroutineCount logs goroutine count

func (*PerformanceLogger) LogMemoryUsage

func (ql *PerformanceLogger) LogMemoryUsage(ctx context.Context, allocated, total int64)

LogMemoryUsage logs memory usage

func (*PerformanceLogger) LogOperation

func (ql *PerformanceLogger) LogOperation(ctx context.Context, operation string, duration time.Duration, metrics map[string]interface{})

LogOperation logs a performance operation

type QueryLogger

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

QueryLogger provides specialized logging for database queries

func NewQueryLogger

func NewQueryLogger(logger Logger, slowQueryThreshold time.Duration) *QueryLogger

NewQueryLogger creates a new query logger

func (*QueryLogger) LogQuery

func (ql *QueryLogger) LogQuery(ctx context.Context, query string, duration time.Duration, rows int64, err error)

LogQuery logs a database query

func (*QueryLogger) LogTransaction

func (ql *QueryLogger) LogTransaction(ctx context.Context, operation string, duration time.Duration, err error)

LogTransaction logs a database transaction

type TextFormatter

type TextFormatter struct{}

TextFormatter formats log entries as text

func (*TextFormatter) Format

func (f *TextFormatter) Format(entry LogEntry) ([]byte, error)

Format formats a log entry as text

Jump to

Keyboard shortcuts

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