Documentation
¶
Index ¶
- Constants
- Variables
- func Arg(key string, value any) any
- func NewColorConsoleHandler(out io.Writer, opts *slog.HandlerOptions) slog.Handler
- func NewFocusFilterHandler(handler slog.Handler, logger *BaseLogger) slog.Handler
- func NormalizeLevel(value string) string
- func NormalizeLoggerType(value string) string
- func Resolve(name string, provider LoggerProvider, logger Logger) (LoggerProvider, Logger)
- type ArgsList
- type BaseLogger
- func (c *BaseLogger) Debug(msg string, args ...any)
- func (c *BaseLogger) Error(msg string, args ...any)
- func (c *BaseLogger) Fatal(msg string, args ...any)
- func (c *BaseLogger) Focus(names ...string)
- func (c *BaseLogger) GetLogger(name string) Logger
- func (c *BaseLogger) Info(msg string, args ...any)
- func (c *BaseLogger) SetGlobalFields(fields map[string]any) *BaseLogger
- func (c *BaseLogger) Trace(msg string, args ...any)
- func (c *BaseLogger) Unfocus()
- func (c *BaseLogger) Warn(msg string, args ...any)
- func (c *BaseLogger) With(args ...any) *BaseLogger
- func (c *BaseLogger) WithContext(ctx context.Context) Logger
- func (c *BaseLogger) WithFields(fields map[string]any) Logger
- func (c *BaseLogger) WithLevel(level string) *BaseLogger
- func (c *BaseLogger) WithLoggerType(loggerType string) Logger
- type ColorConsoleHandler
- func (h *ColorConsoleHandler) Enabled(ctx context.Context, level slog.Level) bool
- func (h *ColorConsoleHandler) Handle(ctx context.Context, r slog.Record) error
- func (h *ColorConsoleHandler) WithAttrs(attrs []slog.Attr) slog.Handler
- func (h *ColorConsoleHandler) WithGroup(name string) slog.Handler
- func (h *ColorConsoleHandler) WithTSFormat(format string) *ColorConsoleHandler
- type ColorConsoleOption
- type FatalBehavior
- type FieldsLogger
- type FocusFilterHandler
- type Logger
- type LoggerProvider
- type Option
- func WithAddSource(add bool) Option
- func WithCallerSkip(skip int) Option
- func WithContext(ctx context.Context) Option
- func WithExitFunc(exit func(int)) Option
- func WithFatalBehavior(behavior FatalBehavior) Option
- func WithGlobalFields(fields map[string]any) Option
- func WithHandlerWrapper(wrapper func(slog.Handler) slog.Handler) Option
- func WithLevel(level string) Option
- func WithLoggerType(loggerType string) Option
- func WithLoggerTypeConsole() Option
- func WithLoggerTypeJSON() Option
- func WithLoggerTypePretty() Option
- func WithName(name string) Option
- func WithRichErrorHandler(handler RichErrorHandler) Option
- func WithWriter(writer io.Writer) Option
- type RichErrorHandler
Constants ¶
const ( LevelTrace = slog.Level(-8) LevelFatal = slog.Level(20) )
const ( Trace = "TRACE" Debug = "DEBUG" Info = "INFO" Warn = "WARN" Error = "ERROR" Fatal = "FATAL" )
const ( LoggerTypeConsole = "console" LoggerTypePretty = "pretty" LoggerTypeJSON = "json" )
Variables ¶
var ColorConsoleTSFormat = "2006-01-02 15:04:05.000"
var CustomLevels = map[slog.Leveler]string{ LevelTrace: Trace, LevelFatal: Fatal, }
var DefaultLogLevel = Info
Functions ¶
func NewColorConsoleHandler ¶
NewColorConsoleHandler creates a new ColorConsoleHandler with the provided options
func NewFocusFilterHandler ¶
func NewFocusFilterHandler(handler slog.Handler, logger *BaseLogger) slog.Handler
func NormalizeLevel ¶ added in v0.10.0
NormalizeLevel returns the canonical log-level constant for value. Matching is case-insensitive and ignores surrounding whitespace. Unsupported and empty values fall back to Info.
func NormalizeLoggerType ¶ added in v0.10.0
NormalizeLoggerType returns the canonical output type for value. Matching is case-insensitive and ignores surrounding whitespace. Text is accepted as an alias for console. Unsupported and empty values fall back to JSON.
func Resolve ¶ added in v0.8.0
func Resolve(name string, provider LoggerProvider, logger Logger) (LoggerProvider, Logger)
Resolve resolves provider and logger with precedence provider > logger > nop.
Types ¶
type BaseLogger ¶
type BaseLogger struct {
// contains filtered or unexported fields
}
BaseLogger implements both Logger and LoggerProvider interfaces
func NewLogger ¶
func NewLogger(options ...Option) *BaseLogger
func (*BaseLogger) Debug ¶
func (c *BaseLogger) Debug(msg string, args ...any)
func (*BaseLogger) Error ¶
func (c *BaseLogger) Error(msg string, args ...any)
func (*BaseLogger) Fatal ¶ added in v0.1.1
func (c *BaseLogger) Fatal(msg string, args ...any)
func (*BaseLogger) Focus ¶
func (c *BaseLogger) Focus(names ...string)
func (*BaseLogger) GetLogger ¶
func (c *BaseLogger) GetLogger(name string) Logger
func (*BaseLogger) Info ¶
func (c *BaseLogger) Info(msg string, args ...any)
func (*BaseLogger) SetGlobalFields ¶ added in v0.10.0
func (c *BaseLogger) SetGlobalFields(fields map[string]any) *BaseLogger
SetGlobalFields atomically replaces the root-owned fields included with every record in this logger tree. The supplied map is copied. A nil or empty map clears the current fields.
func (*BaseLogger) Trace ¶
func (c *BaseLogger) Trace(msg string, args ...any)
func (*BaseLogger) Unfocus ¶
func (c *BaseLogger) Unfocus()
func (*BaseLogger) Warn ¶
func (c *BaseLogger) Warn(msg string, args ...any)
func (*BaseLogger) With ¶ added in v0.1.1
func (c *BaseLogger) With(args ...any) *BaseLogger
With returns a Logger that includes the given attributes in each subsequent log output.
func (*BaseLogger) WithContext ¶
func (c *BaseLogger) WithContext(ctx context.Context) Logger
WithLevel sets the log level and returns the logger
func (*BaseLogger) WithFields ¶ added in v0.4.0
func (c *BaseLogger) WithFields(fields map[string]any) Logger
WithFields returns a logger that includes the given structured fields.
func (*BaseLogger) WithLevel ¶
func (c *BaseLogger) WithLevel(level string) *BaseLogger
WithLevel sets the log level and returns the logger
func (*BaseLogger) WithLoggerType ¶
func (c *BaseLogger) WithLoggerType(loggerType string) Logger
type ColorConsoleHandler ¶
type ColorConsoleHandler struct {
// contains filtered or unexported fields
}
ColorConsoleHandler is a custom slog.Handler that outputs colored logs to the console
func (*ColorConsoleHandler) WithAttrs ¶
func (h *ColorConsoleHandler) WithAttrs(attrs []slog.Attr) slog.Handler
WithAttrs implements slog.Handler.
func (*ColorConsoleHandler) WithGroup ¶
func (h *ColorConsoleHandler) WithGroup(name string) slog.Handler
WithGroup implements slog.Handler.
func (*ColorConsoleHandler) WithTSFormat ¶
func (h *ColorConsoleHandler) WithTSFormat(format string) *ColorConsoleHandler
type ColorConsoleOption ¶
type ColorConsoleOption func(*ColorConsoleHandler)
func WithColorConsoleTSFormat ¶
func WithColorConsoleTSFormat(format string) ColorConsoleOption
type FatalBehavior ¶ added in v0.7.0
type FatalBehavior int
const ( FatalBehaviorExit FatalBehavior = iota FatalBehaviorPanic FatalBehaviorLogOnly )
type FieldsLogger ¶ added in v0.4.0
FieldsLogger is an optional extension for attaching structured fields.
type FocusFilterHandler ¶
type FocusFilterHandler struct {
// contains filtered or unexported fields
}
type Logger ¶
type LoggerProvider ¶
func ProviderFromLogger ¶ added in v0.8.0
func ProviderFromLogger(logger Logger) LoggerProvider
ProviderFromLogger wraps a single logger as a provider.
func ProviderWithFallback ¶ added in v0.8.0
func ProviderWithFallback(provider LoggerProvider, fallback Logger) LoggerProvider
ProviderWithFallback wraps a provider and applies a fallback when nil is returned.
type Option ¶
type Option func(*BaseLogger)
func WithAddSource ¶ added in v0.3.0
func WithCallerSkip ¶ added in v0.9.0
WithCallerSkip adds known adapter frames to the caller depth used for slog.Record.PC and error stack capture. Values below zero are treated as zero and excessive values are bounded. Use this only for stable wrapper layers owned by the application; it is not a general stack-hiding feature.
func WithContext ¶
func WithExitFunc ¶ added in v0.7.0
WithExitFunc overrides the default exit behavior for Fatal.
func WithFatalBehavior ¶ added in v0.7.0
func WithFatalBehavior(behavior FatalBehavior) Option
WithFatalBehavior configures what Fatal does after logging.
func WithGlobalFields ¶ added in v0.10.0
WithGlobalFields configures the initial root-owned fields included with every record in the logger tree. The supplied map is copied.
func WithHandlerWrapper ¶ added in v0.5.0
WithHandlerWrapper wraps the base slog handler before focus/name handlers. Multiple options compose in declaration order: the first wrapper is closest to the base handler and each later wrapper becomes the new outer wrapper.
func WithLoggerType ¶
func WithLoggerTypeConsole ¶
func WithLoggerTypeConsole() Option
func WithLoggerTypeJSON ¶
func WithLoggerTypeJSON() Option
func WithLoggerTypePretty ¶
func WithLoggerTypePretty() Option
func WithRichErrorHandler ¶ added in v0.2.0
func WithRichErrorHandler(handler RichErrorHandler) Option
WithRichErrorHandler sets a custom handler function to extract attributes from errors
func WithWriter ¶ added in v0.5.0
WithWriter sets the output writer for the underlying slog handler.