Documentation
ΒΆ
Index ΒΆ
- Constants
- Variables
- func Colored(color Color, message string) string
- func LevelEncoder(l slog.Level) string
- func LevelEncoderColored(l slog.Level) string
- func ParseLevel(s string, errorOnEmpty bool) (*slog.Level, error)
- func ReplacerGenerator(prettyMode bool) func([]string, slog.Attr) slog.Attr
- func TraceLines(frames StackTrace) []string
- type Color
- type Config
- type CorrelationIDContextKey
- type Handler
- func (h *Handler) Enabled(ctx context.Context, level slog.Level) bool
- func (h *Handler) Handle(ctx context.Context, rec slog.Record) error
- func (h *Handler) Shutdown(ctx context.Context) error
- func (h *Handler) WithAttrs(attrs []slog.Attr) slog.Handler
- func (h *Handler) WithGroup(name string) slog.Handler
- type Logger
- func (l *Logger) Fatal(msg string, args ...any)
- func (l *Logger) FatalContext(ctx context.Context, msg string, args ...any)
- func (l *Logger) Panic(msg string, args ...any)
- func (l *Logger) PanicContext(ctx context.Context, msg string, args ...any)
- func (l *Logger) SetAsDefault()
- func (l *Logger) Trace(msg string, args ...any)
- func (l *Logger) TraceContext(ctx context.Context, msg string, args ...any)
- type LokiClient
- type LokiPayload
- type LokiStream
- type NewLoggerOption
- func WithAddSource(addSource bool) NewLoggerOption
- func WithConfig(config *Config) NewLoggerOption
- func WithDefaultLogger() NewLoggerOption
- func WithFromSlog(slog *slog.Logger) NewLoggerOption
- func WithLevel(level slog.Level) NewLoggerOption
- func WithLoki(uri string, label string) NewLoggerOption
- func WithOTLP(endpoint string, insecure bool) NewLoggerOption
- func WithPrettyMode(pretty bool) NewLoggerOption
- func WithWriter(writer io.Writer) NewLoggerOption
- type OTLPClient
- type StackTrace
- type StackTracer
Constants ΒΆ
View Source
const ( LevelTrace slog.Level = slog.Level(-8) LevelDebug slog.Level = slog.LevelDebug LevelInfo slog.Level = slog.LevelInfo LevelWarn slog.Level = slog.LevelWarn LevelError slog.Level = slog.LevelError LevelFatal slog.Level = slog.Level(12) LevelPanic slog.Level = slog.Level(16) )
OtelLevel - 9 = Level.
View Source
const DefaultLogLevel = "INFO"
Variables ΒΆ
View Source
var ( ErrFailedToParseLogLevel = errors.New("failed to parse log level") ErrFailedToWriteLog = errors.New("failed to write log") ErrFailedToHandleLog = errors.New("failed to handle log") ErrFailedToInitLoki = errors.New("failed to initialize loki client") ErrFailedToInitOTLP = errors.New("failed to initialize OTLP client") )
View Source
var ( ErrInvalidLevelString = errors.New("invalid level string") ErrUnknownErrorLevel = errors.New("unknown error level") )
View Source
var ( ErrFailedToSendToLoki = errors.New("failed to send log to loki") ErrFailedToMarshalLoki = errors.New("failed to marshal loki payload") ErrInvalidLokiResponse = errors.New("invalid loki response") ErrLokiNotConfigured = errors.New("loki not configured") )
View Source
var ( ErrFailedToCreateOTLPLogExporter = errors.New("failed to create OTLP log exporter") ErrFailedToCreateLogProcessor = errors.New("failed to create log processor") ErrOTLPNotConfigured = errors.New("OTLP not configured") ErrFailedToShutdownOTLP = errors.New("failed to shutdown OTLP logger provider") )
Functions ΒΆ
func LevelEncoder ΒΆ added in v0.6.14
func LevelEncoderColored ΒΆ added in v0.6.14
func ParseLevel ΒΆ added in v0.6.14
func ReplacerGenerator ΒΆ
func TraceLines ΒΆ
func TraceLines(frames StackTrace) []string
Types ΒΆ
type Color ΒΆ
type Color string
const ( ColorReset Color = "\033[0m" ColorRed Color = "\033[31m" ColorGreen Color = "\033[32m" ColorYellow Color = "\033[33m" ColorBlue Color = "\033[34m" ColorMagenta Color = "\033[35m" ColorCyan Color = "\033[36m" ColorGray Color = "\033[37m" ColorDimGray Color = "\033[90m" ColorLightRed Color = "\033[91m" ColorLightGreen Color = "\033[92m" ColorLightYellow Color = "\033[93m" ColorLightBlue Color = "\033[94m" ColorLightMagenta Color = "\033[95m" ColorLightCyan Color = "\033[96m" ColorLightGray Color = "\033[97m" )
type Config ΒΆ
type Config struct {
Level string `conf:"level" default:"INFO"`
// OpenTelemetry Collector configuration (preferred)
OTLPEndpoint string `conf:"otlp_endpoint" default:""`
// Direct Loki export (legacy/additional option)
LokiURI string `conf:"loki_uri" default:""`
LokiLabel string `conf:"loki_label" default:""`
DefaultLogger bool `conf:"default" default:"false"`
PrettyMode bool `conf:"pretty" default:"true"`
AddSource bool `conf:"add_source" default:"false"`
OTLPInsecure bool `conf:"otlp_insecure" default:"true"`
}
type CorrelationIDContextKey ΒΆ added in v0.7.2
type CorrelationIDContextKey struct{}
CorrelationIDContextKey is the context key for correlation ID - shared with httpfx middleware.
type Handler ΒΆ
type Handler struct {
InitError error
InnerHandler slog.Handler
InnerWriter io.Writer
InnerConfig *Config
// Export clients (prioritized: OTLP -> Loki)
OTLPClient *OTLPClient
LokiClient *LokiClient
}
type Logger ΒΆ added in v0.6.15
func NewLogger ΒΆ
func NewLogger(options ...NewLoggerOption) *Logger
func (*Logger) Fatal ΒΆ added in v0.6.15
Fatal logs at LevelFatal.
func (*Logger) FatalContext ΒΆ added in v0.6.15
FatalContext logs at LevelFatal with the given context.
func (*Logger) Panic ΒΆ added in v0.6.15
Panic logs at LevelPanic.
func (*Logger) PanicContext ΒΆ added in v0.6.15
PanicContext logs at LevelPanic with the given context.
func (*Logger) SetAsDefault ΒΆ added in v0.7.2
func (l *Logger) SetAsDefault()
func (*Logger) Trace ΒΆ added in v0.6.15
Trace logs at LevelTrace.
func (*Logger) TraceContext ΒΆ added in v0.6.15
TraceContext logs at LevelTrace with the given context.
type LokiClient ΒΆ added in v0.7.2
type LokiClient struct {
// contains filtered or unexported fields
}
LokiClient handles sending logs to Loki.
func NewLokiClient ΒΆ added in v0.7.2
func NewLokiClient(uri, labelStr string) (*LokiClient, error)
NewLokiClient creates a new Loki client.
type LokiPayload ΒΆ added in v0.7.2
type LokiPayload struct {
Streams []LokiStream `json:"streams"`
}
LokiPayload represents the payload sent to Loki.
type LokiStream ΒΆ added in v0.7.2
type LokiStream struct {
Stream map[string]string `json:"stream"`
Values [][]string `json:"values"`
}
LokiStream represents a single Loki log stream.
type NewLoggerOption ΒΆ added in v0.7.2
type NewLoggerOption func(*Logger)
func WithAddSource ΒΆ added in v0.7.2
func WithAddSource(addSource bool) NewLoggerOption
func WithConfig ΒΆ added in v0.7.2
func WithConfig(config *Config) NewLoggerOption
func WithDefaultLogger ΒΆ added in v0.7.2
func WithDefaultLogger() NewLoggerOption
func WithFromSlog ΒΆ added in v0.7.2
func WithFromSlog(slog *slog.Logger) NewLoggerOption
func WithLevel ΒΆ added in v0.7.2
func WithLevel(level slog.Level) NewLoggerOption
func WithLoki ΒΆ added in v0.7.2
func WithLoki(uri string, label string) NewLoggerOption
func WithOTLP ΒΆ added in v0.7.2
func WithOTLP(endpoint string, insecure bool) NewLoggerOption
func WithPrettyMode ΒΆ added in v0.7.2
func WithPrettyMode(pretty bool) NewLoggerOption
func WithWriter ΒΆ added in v0.7.2
func WithWriter(writer io.Writer) NewLoggerOption
type OTLPClient ΒΆ added in v0.7.2
type OTLPClient struct {
// contains filtered or unexported fields
}
OTLPClient handles sending logs to OpenTelemetry collector.
func NewOTLPClient ΒΆ added in v0.7.2
func NewOTLPClient(endpoint string, insecure bool) (*OTLPClient, error)
NewOTLPClient creates a new OTLP client for sending logs to OpenTelemetry collector.
type StackTrace ΒΆ
type StackTrace = []uintptr // []runtime.Frame
type StackTracer ΒΆ
type StackTracer interface {
StackTrace() StackTrace
}
Click to show internal directories.
Click to hide internal directories.